C'è una libreria chiamata mailer
, che fa esattamente quello che hai richiesto: invia e-mail.
impostarlo come una dipendenza nella vostra pubspec.yaml
ed eseguire pub install
:
dependencies:
mailer: any
darò un semplice esempio l'utilizzo di Gmail sulla mia macchina locale di 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'));
}
Il GmailSmtpOptions
è solo un aiutante classe. Se si desidera utilizzare un server SMTP locale:
var options = new SmtpOptions()
..hostName = 'localhost'
..port = 25;
È possibile check here for all possible fields nella classe SmtpOptions
.
Ecco un esempio utilizzando il popolare Rackspace Mailgun:
var options = new SmtpOptions()
..hostName = 'smtp.mailgun.org'
..port = 465
..username = '[email protected]'
..password = 'from mailgun';
La libreria supporta le email HTML e allegati pure. Dai un'occhiata a the example per sapere come farlo.
Utilizzo personalmente mailer
con Mailgun in uso in produzione.
fonte
2013-07-23 23:36:31
FYI, fai attenzione con le password specifiche dell'applicazione. Ignorano l'autenticazione a 2 fattori e non sono limitati a un'applicazione specifica come potrebbe implicare il nome. Non lo metterei mai nel codice sorgente. Forse ti sentirai al sicuro caricandolo da un servizio di archiviazione sicura delle chiavi. –
Forse dovrei chiarire che non ho mai inteso che qualcuno memorizzasse tale codice sorgente! Esempio aggiornato –
Nel caso di Google, non mi sentirei mai sicuro di memorizzare tali password. Conservavo al massimo una password specifica per i servizi di posta elettronica, come nel caso della maggior parte dei servizi di posta elettronica come Mailgun. Grazie per la nota. –