Существует библиотека под названием mailer
, которая выполняет именно то, что вы просили: отправляет электронные письма.
Установите его в качестве зависимости в вашем pubspec.yaml
и запустить pub install
:
dependencies:
mailer: any
Я приведу простой пример использования Gmail на моей локальной машине Windows:
import 'package:mailer/mailer.dart';
main() {
var options = new GmailSmtpOptions()
..username = '[email protected]'
..password = 'my gmail password'; // If you use Google app-specific passwords, use one of those.
// As pointed by Justin in the comments, be careful what you store in the source code.
// Be extra careful what you check into a public repository.
// I'm merely giving the simplest example here.
// Right now only SMTP transport method is supported.
var transport = new SmtpTransport(options);
// Create the envelope to send.
var envelope = new Envelope()
..from = '[email protected]'
..fromName = 'Your company'
..recipients = ['[email protected]', '[email protected]']
..subject = 'Your subject'
..text = 'Here goes your body message';
// Finally, send it!
transport.send(envelope)
.then((_) => print('email sent!'))
.catchError((e) => print('Error: $e'));
}
GmailSmtpOptions
просто помощник класс. Если вы хотите использовать локальный сервер SMTP:
var options = new SmtpOptions()
..hostName = 'localhost'
..port = 25;
Вы можете check here for all possible fields в SmtpOptions
классе.
Вот пример использования популярного Rackspace Mailgun:
var options = new SmtpOptions()
..hostName = 'smtp.mailgun.org'
..port = 465
..username = '[email protected]'
..password = 'from mailgun';
Библиотека поддерживает HTML электронной почты и вложений, а также. Обратитесь к the example, чтобы узнать, как это сделать.
Я лично использую mailer
с Mailgun в производстве.
FYI, будьте осторожны с паролями приложений. Они обходят двухфакторную аутентификацию и не ограничиваются конкретным приложением, как это может означать название. Я бы никогда не поместил его в исходный код. _Maybe, вы можете чувствовать себя безопасно загружать его из службы безопасного хранения ключей. –
Возможно, мне следует пояснить, что я никогда не собирался хранить такие файлы в исходном коде! Обновленный пример. –
В случае Google я никогда не буду чувствовать себя в безопасности, сохраняя такие пароли. Я бы максимально использовал специальный почтовый сервис, например, в случае большинства почтовых служб, таких как Mailgun. Спасибо за примечание. –