Retrieve Emails using C# .NET

هنگام ساخت یک برنامه مدیریت ایمیل، یکی از مراحل مهم راه‌اندازی یک عملکرد قابل اعتماد و سریع برای بازیابی پیام‌ها از یک صندوق ورودی است. در این مقاله، ما بررسی خواهیم کرد که چگونه از قدرت کتابخانه .NET برای بازیابی ایمیل‌ها در C# از طریق POP3، IMAP، EWS، Graph API و از ذخیره‌سازی‌های آفلاین جعبه‌پستی با فرمت‌های مختلف بر اساس یک فایل pst استفاده کنیم. این مقاله همراه با نمونه‌های کد واضحی است که می‌توانید برای آزمایش عملکرد کتابخانه استفاده کنید.

.NET API برای بازیابی پیام‌ها

برای استخراج پیام‌ها از یک سرور یا ذخیره‌سازی جعبه‌پستی در C#، ما از Aspose.Email for .NET استفاده خواهیم کرد. این یک کتابخانه API قدرتمند است که به توسعه‌دهندگان اجازه می‌دهد با ایمیل‌ها در برنامه‌های .NET خود کار کنند. این کتابخانه مجموعه‌ای جامع از ویژگی‌ها را برای کار با ایمیل‌ها در سناریوهای مختلف ارائه می‌دهد. این کار ایجاد، دستکاری و تبدیل پیام‌های ایمیل، کار با پیوست‌های ایمیل، تقویم‌ها، مخاطبین و غیره را ساده می‌کند و همچنین پیام‌ها را از جعبه‌های پستی استخراج کرده و محتوای آن‌ها را بر اساس نیازها مدیریت می‌کند. شما می‌توانید به راحتی API را در پروژه خود پیاده‌سازی کنید پس از دانلود DLL آن یا نصب آن از NuGet با استفاده از دستور زیر:

PM> Install-Package Aspose.Email

بازیابی ایمیل‌ها از طریق POP3

با پروتکل POP3، ایمیل‌ها از سرور به سیستم محلی شما دانلود می‌شوند، که دسترسی و مدیریت آسان را امکان‌پذیر می‌سازد. عملکرد آن می‌تواند به راحتی در برنامه شما ادغام شود. کلاس POP3Client Aspose.Email for .NET برای ایجاد یک شیء کلاینت POP3 برای دستکاری پیام‌ها استفاده می‌شود.

نمونه کد و مراحل زیر نشان می‌دهد که چگونه از کلاینت POP3 برای اتصال به یک سرور ایمیل POP3، بازیابی یک لیست از پیام‌ها و دریافت محتوای پیام استفاده کنید:

  1. ابتدا، نمونه‌ای از شیء کلاینت POP3 ایجاد می‌شود.
  2. از آنجا که پروتکل POP3 دارای رمزنگاری داخلی نیست، که باعث می‌شود انتقال پیام‌های ایمیل در معرض شنود و دسترسی غیرمجاز قرار گیرد، سپس خاصیت SecurityOptions را برای استفاده از یک مکانیزم امنیتی با سرور تنظیم می‌کند.
  3. درون یک حلقه foreach، کد بر روی هر پیام در جعبه‌پستی تکرار می‌کند و محتوای پیام را با استفاده از متد FetchMessage دریافت می‌کند.

شما می‌توانید کد را بیشتر به نیازهای خاص خود تطبیق داده و محتوای پیام بازیابی شده را به طریقه دلخواه با سایر ویژگی‌های کتابخانه .NET استفاده کنید.

استفاده از IMAP برای بازیابی پیام‌ها

IMAP یک پروتکل محبوب دیگر است که رویکردی هماهنگ‌تر و چندمنظوره برای دسترسی به ایمیل‌ها ارائه می‌دهد. بر خلاف POP3، IMAP ایمیل‌ها را بر روی سرور نگه می‌دارد در حالی که به شما اجازه می‌دهد آن‌ها را از چندین دستگاه مدیریت و سازماندهی کنید. تغییرات ایجاد شده در یک دستگاه در تمام دستگاه‌ها منعکس می‌شود و تجربه‌ای یکپارچه و سازگار از ایمیل را فراهم می‌کند.

Aspose.Email for .NET به شما کلاس ImapClient و ویژگی‌های آن را برای اتصال به سرور ایمیل IMAP و مدیریت ایمیل‌ها در پوشه‌ها ارائه می‌دهد. نمونه کد زیر با مراحل نشان می‌دهد که چگونه می‌توانید پیام‌ها را از سرور دریافت کنید:

  1. نمونه‌ای از IMAPClient را ایجاد کنید.
  2. امنیت ارتباطات ایمیل خود را با تنظیم خاصیت SecurityOptions فراهم کنید.
  3. پیام‌های صندوق ورودی را یکی یکی با دریافت آن‌ها نمایش دهید.

بازیابی پیام‌ها از سرور MS Exchange با EWSClient

برای برنامه‌هایی که با سرورهای Microsoft Exchange تعامل دارند، Aspose.Email for .NET از EWS پشتیبانی می‌کند. این پروتکل عملیات پیشرفته‌ای را تسهیل می‌کند، از جمله بازیابی ایمیل، مدیریت تقویم و همگام‌سازی مخاطبین. EWS به ویژه برای برنامه‌هایی که نیاز به یکپارچگی با محیط‌های Microsoft Exchange دارند مفید است.

برای اتصال به سرور Exchange و بازیابی پیام‌های ایمیل، ما از کلاس IEWSClient API .NET استفاده خواهیم کرد. نمونه کد ارائه شده در زیر نشان می‌دهد که چگونه یک اتصال به جعبه‌پستی برقرار کرده، پیام‌ها را در پوشه Inbox لیست کرده و سپس هر پیام ایمیل را یکی یکی دریافت کنید. این فرآیند به توسعه‌دهندگان اجازه می‌دهد تا به طور کارآمد به داده‌های ایمیل دسترسی پیدا کرده و آن‌ها را به صورت برنامه‌نویسی در برنامه‌های .NET خود دستکاری کنند.

  1. با فراخوانی متد GetEWSClient کتابخانه C# یک کلاینت EWS را راه‌اندازی کنید.
  2. با استفاده از متد ListMessages در یک حلقه foreach، بر روی پیام‌های صندوق ورودی تکرار کنید.
  3. محتوای پیام ایمیل را با استفاده از متد FetchMessage دریافت کنید.

بسته به نیازهای برنامه شما، می‌توانید پردازش‌های اضافی را بر روی متغیر eml بازیابی شده انجام دهید. این ممکن است شامل تجزیه هدرهای ایمیل، استخراج پیوست‌ها، تجزیه و تحلیل بدنه ایمیل یا هر عملیات مرتبط دیگری با استفاده از API غنی از ویژگی‌های ما باشد.

Microsoft Graph برای استخراج پیام‌ها از یک سرور

Aspose.Email for .NET به توسعه‌دهندگان این امکان را می‌دهد که از قدرت API Microsoft Graph برای بازیابی ایمیل استفاده کنند. با یکپارچه‌سازی Graph API، برنامه شما به یک نقطه یکپارچه برای بازیابی ایمیل‌ها، تقویم‌ها و مخاطبین دسترسی پیدا می‌کند. این یکپارچه‌سازی زمانی که شما به دنبال ایجاد برنامه‌های جامع و چندمنظوره هستید بسیار ارزشمند است.

نمونه کد و مراحل زیر نشان می‌دهد که چگونه از API Microsoft Graph برای کار با پوشه‌ها و پیام‌های ایمیل استفاده کنید. این کد یک کلاینت Graph ایجاد می‌کند، پوشه “Inbox” را بازیابی می‌کند و بر روی پیام‌های موجود در آن پوشه برای دریافت هر پیام تکرار می‌کند.

  1. با فراخوانی متد GetClient از کلاس GraphClient، یک نمونه کلاینت Graph ایجاد کنید و پارامترهای tokenProvider و “tenant ID” را به آن بدهید.
  2. از متد ListFolders از کلاینت برای بازیابی مجموعه‌ای از تمام پوشه‌ها استفاده کنید.
  3. با استفاده از متد LINQ FirstOrDefault بر روی مجموعه پوشه، پوشه “Inbox” را دریافت کنید. عبارت لامبدا بررسی می‌کند که آیا خاصیت DisplayName یک پوشه با “Inbox” مطابقت دارد یا خیر.
  4. با فراخوانی ListMessages بر روی کلاینت، بر روی پیام‌های موجود در پوشه بازیابی شده تکرار کنید.
  5. برای هر پیام، جزئیات پیام را با فراخوانی FetchMessage بر روی کلاینت و گذراندن msgInfo.ItemId به عنوان پارامتر دریافت کنید.

استخراج پیام‌ها از ذخیره‌سازی آفلاین جعبه‌پستی

کتابخانه جامع C# ما به شما این امکان را می‌دهد که برنامه‌هایی با قابلیت ذخیره‌سازی آفلاین جعبه‌پستی ایجاد کنید. با استفاده از این ویژگی، می‌توانید ایمیل‌ها را به صورت محلی دانلود و ذخیره کنید و دسترسی به آن‌ها را حتی بدون اتصال به اینترنت تضمین کنید. این می‌تواند به ویژه برای کاربرانی که به دسترسی بی‌وقفه به ایمیل در حین حرکت نیاز دارند مفید باشد.

این کتابخانه به خوبی با ذخیره‌سازی‌های مستقل در فرمت‌های مختلف مانند PST، MBOX، OLM، TGZ کار می‌کند اما در این مقاله ما یک مثال از بازیابی ایمیل‌ها از PST را بررسی خواهیم کرد.

برای پیاده‌سازی این عملکرد با دسترسی آفلاین به اطلاعات جعبه‌پستی، ما از کلاس PersonalStorage این کتابخانه استفاده خواهیم کرد. مراحل و نمونه کد زیر برای دریافت پیام‌ها از یک فایل pst است:

  1. با فراخوانی متد FromFile کلاس PersonalStorage و گذراندن مسیر فایل PST به عنوان پارامتر، یک شیء ذخیره‌سازی شخصی جدید ایجاد کنید.

  2. با فراخوانی متد GetSubfolder بر روی خاصیت RootFolder شیء ذخیره‌سازی شخصی، یک متغیر به نام “folder” را راه‌اندازی کنید. رشته “Inbox” را به عنوان پارامتر برای مشخص کردن نام پوشه‌ای که باید بازیابی شود، پاس دهید.

  3. با استفاده از یک حلقه foreach بر روی هر شیء “msgInfo” در مجموعه‌ای که توسط متد EnumerateMessages شیء “folder” بازگردانده می‌شود، تکرار کنید.

  4. درون حلقه، یک متغیر جدید به نام “msg” با فراخوانی متد ExtractMessage بر روی شیء ذخیره‌سازی شخصی ایجاد کنید. خاصیت EntryIdString شیء “msgInfo” فعلی را به عنوان پارامتر برای مشخص کردن اینکه کدام پیام باید استخراج شود، پاس دهید.

کد عملیات مشخص شده در مراحل 3 و 4 را برای هر پیام در پوشه انجام خواهد داد.

نتیجه‌گیری

در این مقاله، ما یاد گرفتیم که چگونه از قدرت Aspose.Email for .NET برای بازیابی ایمیل‌ها استفاده کنیم. با پشتیبانی از POP3، IMAP، EWS، Graph API و ذخیره‌سازی آفلاین جعبه‌پستی، این کتابخانه به شما امکان می‌دهد که عملکرد برنامه خود را سفارشی کنید تا نیازهای خاص را برآورده سازد. چه شما در حال توسعه یک برنامه کلاینت، یک ابزار یکپارچه‌سازی یا یک راه‌حل سفارشی باشید، API .NET ما ابزارهای لازم برای ایجاد یک تجربه مدیریت پیام بی‌وقفه و کارآمد را در اختیارتان قرار می‌دهد. شما می‌توانید ویژگی‌های دیگر Aspose.Email را با استفاده از مستندات بررسی کنید. همچنین می‌توانید سوالات خود را به انجمن ما ارسال کنید.

همچنین ببینید