Передмова
Ми знаємо, що поточний .NET Core не підтримує протокол SMTP, коли я використовую функцію надсилання електронної пошти, мені потрібно використовувати сторонні компоненти для досягнення цієї мети. Сьогодні я познайомлю вас із двома відкритими компонентами для відправки електронної пошти — MailKit і FluentEmail, і я їх познайомлю відповідно.
MailKit
У ASP.NET Core можна використовувати MailKit для надсилання повідомлень, підтримує кросплатформенність, IMAP, POP3, SMTP та інші протоколи.
Ви можете встановити його такими методами:
Ось простий приклад надсилання електронного листа:
Якщо основний контент, який ви хочете надіслати, є HTML, ви можете використовувати наступне:
Fluent Email також є відкритим проєктом, ви можете використовувати шаблони Razor для надсилання листів, а також інтегруватися з деякими сторонніми відправниками електронної пошти, такими як Mailgun, але цей пакет підтримує SMTP лише під .NET 4.6. Ви можете встановити його за допомогою наступної команди:
Ви можете надіслати електронного листа найпростішими способами, такими простими:
Альтернативно, ви можете використати шаблон Razor для надсилання:
Email.DefaultRenderer повідомляє FulentEmail, який рендерер використовувати (ви також можете реалізувати свій власний), потім надає шаблон-шаблон із вмістом рядка шаблону Razor, а для рендерингу використовує UsingTemplate.
Шаблон CSHTML на диску
Якщо файл шаблону Razor великий і незручний для використання рядків, ви можете помістити шаблонний файл на диск і завантажити його наступним чином:
Надсилайте повідомлення за допомогою Mailgun
Дехто може мало знати про Mailgun, Mailgun — це компанія з іноземної пошти, наприклад, відомий Github розміщується на ньому, і безкоштовний акаунт Maingun може надсилати 10 000 листів на місяць, що достатньо для багатьох малих і середніх сайтів.
Коли ви використовуєте Mailgun для надсилання листів, спочатку потрібно зареєструвати обліковий запис, а потім скористатися Rest API, наданим Mailgun, для керування листами, які ви надсилаєте або отримуєте. Mailgun з інтеграцією з FluentEmail має додавати лише такі пакети:
Після реєстрації Mailgun вам буде призначено API Key і доменне ім'я другого рівня, і ви повинні налаштувати його наступним чином:
зведення
З наведених вище прикладів видно, що MailKit і FluentEmail мають свої переваги та недоліки. Перевага MailKit у тому, що він підтримує багато протоколів і є кросплатформенним, але недоліком є відсутність підтримки Razor, і якщо ви використовуєте Mailgun, вам потрібно інтегрувати його самостійно. Перевага FlentEmail полягає в тому, що він підтримує шаблони Razor і інкапсулює Mailgun, але недоліком є те, що протокол SMTP поки що не підтримує .NET Core.
Підсумовуючи, якщо ви використовуєте Mailgun для надсилання листів, то FluentEmail — це ваш вибір, а якщо хочете використовувати протокол SMTP для зв'язку з вашим поштовим сервером для надсилання листів, то краще скористатися MailKit.
|