Istnieje biblioteka o nazwie mailer
, która wykonuje dokładnie to, o co prosiłeś: wysyła wiadomości e-mail.
Ustaw go jako zależność w swoim pubspec.yaml
i uruchomić pub install
:
dependencies:
mailer: any
Podam prosty przykład za pomocą Gmaila na moim komputerze lokalnym 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
jest tylko pomocnikiem klasa. Jeśli chcesz korzystać z lokalnego serwera SMTP:
var options = new SmtpOptions()
..hostName = 'localhost'
..port = 25;
Można check here for all possible fields w klasie SmtpOptions
.
Oto przykład przy użyciu popularnej Rackspace Mailgun:
var options = new SmtpOptions()
..hostName = 'smtp.mailgun.org'
..port = 465
..username = '[email protected]'
..password = 'from mailgun';
Biblioteka obsługuje wiadomości e-mail w formacie HTML i załączniki, jak również. Aby dowiedzieć się, jak to zrobić, sprawdź numer the example.
Osobiście używam mailer
z Mailgunem w produkcji.
FYI, należy zachować ostrożność w przypadku haseł aplikacji. Pomijają one 2-czynnikowy autorytet i nie są ograniczone do konkretnej aplikacji, takiej jak nazwa może sugerować. Nigdy nie umieściłbym jednego w kodzie źródłowym. _Możesz czuć się bezpiecznie, ładując go z bezpiecznej usługi przechowywania kluczy. –
Może powinienem wyjaśnić, że nigdy nie zamierzałem nikogo przechowywać takiego w kodzie źródłowym! Zaktualizowany przykład. –
W przypadku Google nigdy nie czułbym się bezpiecznie przechowywać takie hasła. Mogę przechowywać co najwyżej hasło do usługi e-mail, tak jak w przypadku większości usług pocztowych, takich jak Mailgun. Dzięki za notatkę. –