предисловие
Мы знаем, что текущий .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 для отправки писем сначала нужно зарегистрировать аккаунт, а затем использовать API Rest, предоставленный Mailgun, чтобы управлять отправляемыми или получаемыми письмами. Mailgun с интеграцией с FluentEmail должен добавлять только такие пакеты:
После регистрации Mailgun вам будут назначены API Key и доменное имя второго уровня, и вы должны настроить его следующим образом:
сводка
Из приведённых выше примеров видно, что у MailKit и FluentEmail есть свои плюсы и недостатки. Преимущество MailKit в том, что он поддерживает множество протоколов и является кроссплатформенным, но недостаток в том, что он не поддерживает Razor, и если вы используете Mailgun, его нужно интегрировать самостоятельно. Преимущество FlentEmail в том, что он поддерживает шаблоны Razor и инкапсулирует Mailgun, но недостаток в том, что протокол SMTP пока не поддерживает .NET Core.
В итоге, если вы используете Mailgun для отправки писем, то FluentEmail — это ваш выбор, а если хотите использовать протокол SMTP для подключения к почтовому серверу для отправки писем, то используйте MailKit.
|