Ho finalmente upgradato questa libreria con il supporto ad Arduino (Ethernet, UIPEthernet e SD), esp32 (SPIFFS e SD) e esp8266 (SD e SPIFFS) e la possibilità di allegare files.
Fai riferimento a quest’articolo per la versione 2.x della libreria “Inviare email con allegati (libreria v2.x)“.
Un metodo semplice per notificare un problema è utilizzare la posta elettronica, è utile e semplice da condividere, quindi ho creato una libreria per farlo. Prendo del codice da un’altra libreria (GSender) una libreria abbastanza semplice, ma non così completa e configurabile.
Questa libreria utilizza il protocollo SMTP:
Simple Mail Transfer Protocol (SMTP) è un protocollo standard per la trasmissione di email. Inizialmente proposto nella RFC 778 nel 1981, poi aggiornato con RFC 821 nel 1982 ed ulteriormente modificato nel 2008 con l’introduzione di extended SMTP (RFC 1869 e RFC 5321), che è il protocollo attualmente in uso.
Anche se i server di posta elettronica utilizzano SMTP per inviare e ricevere mail, i client mail a livello utente utilizzano SMTP solo per inviare il messaggio al server mail, il quale si occupa dell’invio del messaggio stesso. Per recuperare i messaggi, le applicazioni client usano solitamente protocolli come IMAP o POP3.
La comunicazione tra i server mail utilizza il protocollo TCP sulla porta 25. I client mail, tuttavia, spesso inviano le mail in uscita al server sulla porta 587. Anche se deprecata, i provider mail e alcuni produttori come Apple, permettono ancora l’uso della porta non standard 465 per questa operazione. (Cit. Wiki)
Per gli esempi utilizzo un account dedicato di Gmail, creo un nuovo account perché è necessario ridurre la sicurezza per utilizzarlo con un programma esterno.
Retrocompatibilità
Dalla versione successiva alla esp8266 core 2.4.2 cioè successiva o uguale alla 2.5.2 qualcosa è cambiato e per supportare la vecchia versione 2.4.2 aggiungo una definizione per permetterti di lavorare con quel core.
Quindi se hai un esp8266 core 2.4.2 o meno devi decommentare questa linea
// Uncomment if you use esp8266 core <= 2.4.2
#define ARDUINO_ESP8266_RELEASE_2_4_2
Library
Puoi trovare la mia libreria qui.
Per scaricare.
Clicca il bottone DOWNLOADS sull’angolo in alto a destra, e rinomina la cartella decompressa EMailSender.
Controlla che la cartella EMailSender contenga EMailSender.cpp e EMailSender.h.
Posizione la libreria EMailSender nella tua cartella /libraries/.
Potresti dover creare la sottocartella libraries se è la tua prima libreria.
Riavvia l’IDE.
Usage
Costruttore: il valore predefinito è abbastanza semplice e usa GMail come server smtp.
EMailSender emailSend("smtp.account@gmail.com", "password");
Se si desidera utilizzare un altro fornitore, è possibile utilizzare un costruttore più complesso (ma comunque semplice)
EMailSender(const char* email_login, const char* email_password, bool isSecure = false);
EMailSender(const char* email_login, const char* email_password, const char* email_from, bool isSecure = false);
EMailSender(const char* email_login, const char* email_password, const char* email_from, const char* smtp_server, uint16_t smtp_port, bool isSecure = false);
email_login
: login account smtpemail_password
: password account smtpemail_from
: email del mittentesmtp_server
: server SMTPsmtp_port
: porta SMTPisSecure = false
: if false BearSSL permette una connessione insicura TLS
È necessario connettersi a WIFI: P.
Crea un messaggio con la struttura EMailMessage
EMailSender::EMailMessage message;
message.subject = "Subject";
message.message = "Hi, How are you<br>Fine.";
Invia un messaggio:
EMailSender::Response resp = emailSend.send("account_to_send@gmail.com", message);
E controlla la response:
Serial.println("Sending status: ");
Serial.println(resp.code);
Serial.println(resp.desc);
Serial.println(resp.status);
Esempio di serial output:
Connection: ESTABLISHED
Got IP address: 192.168.1.104
Sending status:
1
0
Message sent!
Abilita GMail
Consenti alle app meno sicure di accedere al tuo account Gmail
Google potrebbe bloccare i tentativi di accesso da alcune app o dispositivi che non utilizzano i moderni standard di sicurezza. Poiché queste app e dispositivi sono più facili da violare, il loro blocco aiuta a proteggere il tuo account.
Per disabilitare questa funzione di sicurezza:
- Accedi a Gmail
- Fai clic qui per accedere a Accesso meno sicuro all’app nel mio account.
- Accanto a “Consenti app meno sicure: OFF ”, selezionare l’interruttore per accendere su ON .
Questa impostazione potrebbe non essere disponibile per:
- Account con verifica in due passaggi abilitata: tali account richiedono una password specifica per l’applicazione per un accesso meno sicuro alle app .
- Utenti di G Suite: questa impostazione è nascosta se l’amministratore ha bloccato l’accesso all’account dell’app meno sicuro.
Per gli utenti di G-Suite: abilitazione delle app meno sicure per accedere agli account
- Accedi alla tua Console di amministrazione Google (accedi utilizzando un account amministratore , non il tuo account corrente.
- Fai clic su Sicurezza> Impostazioni di base .
- In App meno sicure , seleziona Vai a impostazioni per app meno sicure .
- Nella finestra secondaria, selezionare il pulsante di opzione Consenti agli utenti di gestire il loro accesso ad app meno sicure .
Dopo aver impostato Consenti agli utenti di gestire il loro accesso ad app meno sicure , gli utenti interessati all’interno del gruppo selezionato o Unità organizzativa saranno in grado di attivare o disattivare le app meno sicure.
Amministratori di G-Suite: imporre l’accesso ad app meno sicure per tutti gli utenti
Utilizzare questa impostazione quando si desidera che l’accesso da un’app meno sicura sia disponibile per tutti per un periodo di tempo limitato, ad esempio per gli aggiornamenti.
- Accedi alla tua Console di amministrazione Google. Accedi utilizzando un account amministratore
- Fai clic su Sicurezza> Impostazioni di base .
- In App meno sicure , seleziona Vai a impostazioni per app meno sicure .
- Nella finestra secondaria, seleziona il pulsante di opzione Imponi accesso ad app meno sicure per tutti gli utenti .
Una volta impostato Applica l’accesso ad app meno sicure per tutti gli utenti , gli utenti interessati all’interno del gruppo selezionato o Unità organizzativa non saranno in grado di disattivare l’accesso per le app meno sicure. Dovrai ripristinare le impostazioni su Consenti agli utenti di gestire il loro accesso ad app meno sicure per consentire loro di attivare o disattivare le app meno sicure.