Отримання електронних листів за допомогою C# .NET

При створенні програми для обробки електронної пошти одним з ключових етапів є налаштування надійної та швидкої функціональності для отримання повідомлень з вхідних повідомлень. У цій статті ми розглянемо, як використовувати потужність бібліотеки .NET для отримання електронних листів у C# через POP3, IMAP, EWS, Graph API та з офлайн-сховищ поштових скриньок різних форматів на прикладі файлу pst. Стаття супроводжується чіткими прикладами коду, які ви можете використовувати для тестування функціональності бібліотеки.

.NET API для отримання повідомлень

Для витягнення повідомлень з сервера або сховища поштових скриньок у C# ми будемо використовувати Aspose.Email для .NET. Це потужна бібліотека API, яка дозволяє розробникам працювати з електронною поштою у своїх .NET-додатках. Вона надає комплексний набір функцій для роботи з електронною поштою в різних сценаріях. Це спрощує роботу зі створенням, маніпуляцією та конвертацією електронних повідомлень, роботою з вкладеннями електронної пошти, календарями, контактами тощо, а також витягненням повідомлень з поштових скриньок та управлінням їх вмістом відповідно до потреб. Ви можете легко впровадити API у свій проект після завантаження його DLL або встановлення з NuGet за допомогою наступної команди:

PM> Install-Package Aspose.Email

Отримання електронних листів через POP3

За допомогою протоколу POP3 електронні листи завантажуються з сервера на вашу локальну систему, що дозволяє легко отримувати доступ та управляти ними. Його функціональність можна без зусиль інтегрувати у вашу програму. Aspose.Email для .NET POP3Client клас використовується для створення об’єкта клієнта POP3 для маніпуляцій з повідомленнями.

Приклад коду та наведені нижче кроки демонструють, як використовувати клієнт POP3 для підключення до POP3 поштового сервера, отримання списку повідомлень та витягнення вмісту повідомлення:

  1. Спочатку створюється екземпляр об’єкта клієнта POP3.
  2. Оскільки протокол POP3 не має вбудованого шифрування, що залишає передачу електронних повідомлень вразливою до перехоплення та несанкціонованого доступу, він, отже, встановлює властивість SecurityOptions для використання механізму безпеки з сервером.
  3. Всередині циклу foreach код ітерує по кожному повідомленню в поштовій скриньці та витягує вміст повідомлення за допомогою методу FetchMessage.

Ви можете додатково адаптувати код відповідно до своїх конкретних потреб та використовувати витягнутий вміст повідомлення бажаним чином з іншими функціями бібліотеки .NET.

Використання IMAP для отримання повідомлень

IMAP є ще одним популярним протоколом, який пропонує більш синхронізований та універсальний підхід до доступу до електронної пошти. На відміну від POP3, IMAP зберігає електронні листи на сервері, дозволяючи вам управляти та організовувати їх з кількох пристроїв. Зміни, внесені на одному пристрої, відображаються на всіх пристроях, забезпечуючи безшовний і послідовний досвід електронної пошти.

Aspose.Email для .NET пропонує вам клас ImapClient та його властивості для підключення до IMAP поштового сервера та управління електронною поштою у папках. Наступний приклад коду з кроками покаже вам, як отримати повідомлення з сервера:

  1. Створіть екземпляр IMAPClient.
  2. Забезпечте безпеку ваших електронних комунікацій, налаштувавши властивість SecurityOptions.
  3. Відобразіть вхідні повідомлення, отримуючи їх одне за одним.

Отримання повідомлень з сервера MS Exchange за допомогою EWSClient

Для програм, що взаємодіють з серверами Microsoft Exchange, Aspose.Email для .NET пропонує підтримку EWS. Цей протокол полегшує просунуті операції, включаючи отримання електронних листів, управління календарем та синхронізацію контактів. EWS особливо корисний для програм, які вимагають інтеграції з середовищами Microsoft Exchange.

Щоб підключитися до сервера Exchange та отримати електронні повідомлення, ми будемо використовувати клас IEWSClient API .NET. Наведений нижче приклад коду демонструє, як встановити з’єднання з поштовою скринькою, перерахувати повідомлення в папці Вхідні та потім витягнути кожне окреме електронне повідомлення. Цей процес дозволяє розробникам ефективно отримувати доступ та маніпулювати даними електронної пошти програмно у своїх .NET-додатках.

  1. Ініціалізуйте клієнта EWS, викликавши метод GetEWSClient бібліотеки C#.
  2. Ітеруйте через вхідні повідомлення в циклі foreach, використовуючи метод ListMessages.
  3. Витягніть вміст електронного повідомлення, використовуючи метод FetchMessage.

В залежності від вимог вашого застосунку, ви можете виконати додаткову обробку над витягнутим змінною eml. Це може включати парсинг заголовків електронної пошти, витягнення вкладень, аналіз вмісту електронного листа або будь-які інші релевантні операції за допомогою нашого багатофункціонального API.

Microsoft Graph для витягнення повідомлень з сервера

Aspose.Email для .NET дозволяє розробникам використовувати потужність API Microsoft Graph для отримання електронних листів. Інтегруючи Graph API, ваш додаток отримує доступ до єдиного кінцевого пункту для отримання електронних листів, календарів та контактів. Ця інтеграція є безцінною, коли ви прагнете створити комплексні, багатофункціональні програми.

Приклад коду та наведені нижче кроки демонструють, як використовувати Microsoft Graph API для роботи з папками електронної пошти та повідомленнями. Він створює клієнта Graph, отримує папку “Вхідні” та ітерує по повідомленнях у цій папці, щоб витягти кожне повідомлення.

  1. Створіть екземпляр клієнта Graph, викликавши метод GetClient з класу GraphClient, передавши tokenProvider та “ID орендаря” як параметри.
  2. Використовуйте метод ListFolders з клієнта для отримання колекції всіх папок.
  3. Отримайте папку “Вхідні”, використовуючи метод FirstOrDefault LINQ на колекції папок. Лямбда-вираз перевіряє, чи властивість DisplayName папки відповідає “Вхідні”.
  4. Ітеруйте по повідомленням у отриманій папці ItemId, викликавши ListMessages на клієнті.
  5. Для кожного повідомлення отримайте деталі повідомлення, викликавши FetchMessage на клієнті, передавши msgInfo.ItemId як параметр.

Витягнення повідомлень з офлайн-сховища поштової скриньки

Наша всеосяжна бібліотека C# надає вам можливість створювати програми з можливістю офлайн-сховища поштових скриньок. Використовуючи цю функцію, ви можете завантажувати та зберігати електронні листи локально, забезпечуючи доступ навіть без підключення до Інтернету. Це особливо корисно для користувачів, які потребують безперебійного доступу до електронної пошти в дорозі.

Бібліотека добре працює з автономними сховищами різних форматів, такими як PST, MBOX, OLM, TGZ, але в цій статті ми розглянемо приклад отримання електронних листів з PST.

Щоб реалізувати цю функцію з офлайн-доступом до інформації про поштову скриньку, ми будемо використовувати клас PersonalStorage бібліотеки. Нижче наведено приклад коду та кроки для отримання повідомлень з файлу pst:

  1. Почніть зі створення нового об’єкта особистого сховища, викликавши метод FromFile класу PersonalStorage та передавши шлях до файлу PST як параметр.

  2. Ініціалізуйте змінну з ім’ям “folder”, викликавши метод GetSubfolder на властивості RootFolder об’єкта особистого сховища. Передайте рядок “Вхідні” як параметр, щоб вказати назву папки для отримання.

  3. Використовуйте цикл foreach для ітерації через кожен об’єкт “msgInfo” у колекції, що повертається методом EnumerateMessages об’єкта “folder”.

  4. Всередині циклу створіть нову змінну з ім’ям “msg”, викликавши метод ExtractMessage на об’єкті особистого сховища. Передайте властивість EntryIdString поточного об’єкта “msgInfo” як параметр, щоб вказати, яке повідомлення витягти.

Код виконає операції, зазначені на кроках 3 і 4 для кожного повідомлення в папці.

Висновок

У цій статті ми дізналися, як використовувати потужність Aspose.Email для .NET для отримання електронних листів. Завдяки підтримці POP3, IMAP, EWS, Graph API та офлайн-сховища поштових скриньок бібліотека надає вам можливість налаштувати функціональність вашого застосунку відповідно до специфічних потреб. Чи розробляєте ви клієнтський застосунок, інструмент інтеграції чи інше рішення, наш API .NET забезпечує вас інструментами для створення безперебійного та ефективного досвіду обробки повідомлень. Ви можете дослідити інші функції Aspose.Email, використовуючи документацію. Також ви можете надіслати свої запитання на наш форум.

Дивіться також