Sommario:

Come inviare e-mail con allegati con Arduino, Esp32 e Esp8266: 6 passaggi
Come inviare e-mail con allegati con Arduino, Esp32 e Esp8266: 6 passaggi

Video: Come inviare e-mail con allegati con Arduino, Esp32 e Esp8266: 6 passaggi

Video: Come inviare e-mail con allegati con Arduino, Esp32 e Esp8266: 6 passaggi
Video: PROGETTO ESP32: Inviare per e-mail foto con ESP-Cam 2024, Novembre
Anonim
Come inviare e-mail con allegati con Arduino, Esp32 e Esp8266
Come inviare e-mail con allegati con Arduino, Esp32 e Esp8266

Qui vorrei spiegare la versione 2 della mia libreria EMailSender, una grande evoluzione rispetto alla versione 1, con supporto per Arduino con ethernet shield w5100, w5200 e w5500 e dispositivi clone enc28J60, e supporto per esp32 ed esp8266.

Ora puoi anche aggiungere allegati, caricati da dispositivi di archiviazione come SD o SPIFFS. Qui l'utilizzo di Arduino ethernet.

Forniture

  • Arduino Mega
  • enc28J60
  • scheda SD

Passaggio 1: selezionare il dispositivo corretto ENC28J60 o serie W5100

Selezionare il dispositivo corretto ENC28J60 o serie W5100
Selezionare il dispositivo corretto ENC28J60 o serie W5100

Arduino, normalmente, gestisce la rete con un dispositivo esterno, il dispositivo standard come w5100 usa la libreria Ethernet i cloni ENC28J60 hanno alcune librerie da selezionare.

Per selezionare il tuo dispositivo devi andare sul file di libreria EMailSenderKey.h e impostare quello corretto

#define DEFAULT_EMAIL_NETWORK_TYPE_ARDUINO NETWORK_ENC28J60 // Predefinito

La libreria caricata per gestire questo tipo di dispositivo è UIPEthernet, puoi trovare la libreria sul gestore librerie dell'IDE Arduino

oppure puoi cambiare il tipo di rete predefinito

#define DEFAULT_EMAIL_NETWORK_TYPE_ARDUINO NETWORK_W5100

Questa è l'implementazione standard e utilizza la libreria Ethernet.

Una cosa importante da considerare è che questo shield Ethernet non supporta SSL o TLS, quindi è necessario trovare un provider SMTP che offra una connessione SMTP senza questo tipo di crittografia.

Creo un topic sul forum dove puoi aggiungere il provider che usi, che trovi anche il mio.

Passaggio 2: invia un'e-mail semplice

Invia e-mail semplice
Invia e-mail semplice

Per inviare una mail con Arduino devi trovare un provider che funzioni senza SSL o TLS, per la mia soluzione utilizzo con il provider SendGrid.

Penso che l'utilizzo sia molto molto semplice.

Quindi devi impostare il provider

EMailSender emailSend("YOUR-SENDGRID-API-KEY", "YOUR-SENDGRID-PASSWD", "FROM-EMAIL", "smtp.sendgrid.net", 25);

Quindi devi creare un messaggio e inviarlo

EMailSender::EMailMessage messaggio; message.subject = "Soggetto"; message.message = "Ciao come staiio bene.

EMailSender::Response resp = emailSend.send("[email protected]", messaggio);

Serial.println("Stato invio: ");

Serial.println(resp.status);

Serial.println(resp.code); Serial.println(resp.desc);

Passaggio 3: collega un carrello SD per gestire gli allegati

Collega un carrello SD per gestire gli allegati
Collega un carrello SD per gestire gli allegati

Per inviare allegati è necessario collegare una scheda SD come nello schema, se hai bisogno di maggiori informazioni sulla connessione fai riferimento a questo articolo "Come usare la scheda SD con esp8266, esp32 e Arduino".

Passaggio 4: inviare e-mail con allegati

Per inviare e-mail con allegati è necessario trovare un provider che supporti tale funzionalità, il mio provider sendgrid non lo supporta e GMX il provider che ho utilizzato per il test non supporta più.

Ma se trovi un nuovo provider puoi usare questo codice per allegare i file.

EMailSender::FileDescriptior fileDescriptor[1]; fileDescriptor[0].filename = F("test.txt"); fileDescriptor[0].url = F("/test.txt"); fileDescriptor[0].mime = MIME_TEXT_PLAIN; fileDescriptor[0].encode64 = false; fileDescriptor[0].storageType = EMailSender::EMAIL_STORAGE_TYPE_SD;

EMailSender::Allegati allegati = {1, fileDescriptor};

EMailSender::Response resp = emailSend.send("[email protected]", messaggio, allegati);

Passaggio 5: il risultato

Il risultato
Il risultato

Qui l'email inviata con un provider esp8266 e GMail (per utilizzare GMail è necessario enambe programma esterno).

Passaggio 6: libreria

Puoi trovare la libreria su GitHub

E devi chiedere funzionalità o segnalare bug sul forum

Documentazione aggiuntiva qui.

Consigliato: