Taula de continguts:

Com enviar correus electrònics amb fitxers adjunts amb Arduino, Esp32 i Esp8266: 6 passos
Com enviar correus electrònics amb fitxers adjunts amb Arduino, Esp32 i Esp8266: 6 passos

Vídeo: Com enviar correus electrònics amb fitxers adjunts amb Arduino, Esp32 i Esp8266: 6 passos

Vídeo: Com enviar correus electrònics amb fitxers adjunts amb Arduino, Esp32 i Esp8266: 6 passos
Vídeo: CS50 2014 – 7-я неделя 2024, De novembre
Anonim
Com enviar correus electrònics amb fitxers adjunts amb Arduino, Esp32 i Esp8266
Com enviar correus electrònics amb fitxers adjunts amb Arduino, Esp32 i Esp8266

Aquí voldria explicar la versió 2 de la meva biblioteca EMailSender, una gran evolució respecte a la versió 1, amb suport per a Arduino amb protectors ethernet w5100, w5200 i w5500 i dispositius clon enc28J60, i suport per esp32 i esp8266.

Ara també podeu afegir fitxers adjunts, carregats des d'un dispositiu d'emmagatzematge com SD o SPIFFS. Aquí l’ús d’Ethernet d’Arduino.

Subministraments

  • Arduino Mega
  • enc28J60
  • targeta SD

Pas 1: seleccioneu el dispositiu correcte ENC28J60 o la sèrie W5100

Seleccioneu Dispositiu correcte ENC28J60 o W5100 Series
Seleccioneu Dispositiu correcte ENC28J60 o W5100 Series

Arduino, normalment, gestiona la xarxa amb un dispositiu extern; el dispositiu estàndard com el w5100 utilitza la biblioteca Ethernet; els clons ENC28J60 tenen algunes biblioteques per seleccionar.

Per seleccionar el dispositiu, heu d’anar al fitxer de biblioteca EMailSenderKey.h i definir-ne el correcte

#define DEFAULT_EMAIL_NETWORK_TYPE_ARDUINO NETWORK_ENC28J60 // Per defecte

La biblioteca carregada per gestionar aquest tipus de dispositiu és UIPEthernet, la podeu trobar al gestor de biblioteques de l'IDE Arduino

o podeu canviar el tipus de xarxa per defecte

#define DEFAULT_EMAIL_NETWORK_TYPE_ARDUINO NETWORK_W5100

Aquesta és la implementació estàndard i l’ús de la biblioteca Ethernet.

Una idea important a tenir en compte és que aquest blindatge Ethernet no admet SSL ni TLS, de manera que heu de trobar un proveïdor SMTP que ofereixi una connexió SMTP sense aquest tipus de codificació.

Creo un tema al fòrum on podeu afegir el proveïdor que utilitzeu, que també podeu trobar el meu.

Pas 2: envieu un correu electrònic senzill

Enviar correu electrònic senzill
Enviar correu electrònic senzill

Per enviar un correu electrònic amb Arduino heu de trobar un proveïdor que funcioni sense SSL o TLS, per a la meva solució l’utilitzo amb el proveïdor SendGrid.

Crec que l’ús és molt molt senzill.

Per tant, heu d’establir el proveïdor

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

Cal crear un missatge i enviar-lo

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

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

Serial.println ("Estat d'enviament:");

Serial.println (estat respectiu);

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

Pas 3: connecteu un carretó SD per gestionar els fitxers adjunts

Connecteu un carretó SD per gestionar els fitxers adjunts
Connecteu un carretó SD per gestionar els fitxers adjunts

Que per enviar fitxers adjunts, heu de connectar una targeta SD com a l'esquema, si necessiteu més informació sobre la connexió, consulteu aquest article "Com utilitzar la targeta SD amb esp8266, esp32 i Arduino".

Pas 4: envieu un correu electrònic amb fitxers adjunts

Per enviar correus electrònics amb fitxers adjunts, heu de trobar un proveïdor que admeti aquesta funcionalitat, el meu proveïdor sendgrid no ho admeti i GMX el proveïdor que he utilitzat per a la prova ja no és compatible.

Però si trobeu un proveïdor nou, podeu utilitzar aquest codi per adjuntar els fitxers.

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:: Adjunts adjunts = {1, fileDescriptor};

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

Pas 5: el resultat

El resultat
El resultat

Aquí el missatge de correu electrònic enviat amb un proveïdor esp8266 i GMail (per utilitzar GMail heu de tenir un programa extern).

Pas 6: Biblioteca

Podeu trobar la biblioteca a GitHub

I heu de demanar funcions o informar d'errors al fòrum

Documentació addicional aquí.

Recomanat: