Tabla de contenido:

Cómo enviar correos electrónicos con archivos adjuntos con Arduino, Esp32 y Esp8266: 6 pasos
Cómo enviar correos electrónicos con archivos adjuntos con Arduino, Esp32 y Esp8266: 6 pasos

Video: Cómo enviar correos electrónicos con archivos adjuntos con Arduino, Esp32 y Esp8266: 6 pasos

Video: Cómo enviar correos electrónicos con archivos adjuntos con Arduino, Esp32 y Esp8266: 6 pasos
Video: Enviar correo electrónico con ESP32 y Gmail | Arduino IDE | Fácil y rápido 2024, Noviembre
Anonim
Cómo enviar correos electrónicos con archivos adjuntos con Arduino, Esp32 y Esp8266
Cómo enviar correos electrónicos con archivos adjuntos con Arduino, Esp32 y Esp8266

Aquí me gustaría explicar la versión 2 de mi biblioteca EMailSender, una gran evolución respecto a la versión 1, con soporte para Arduino con w5100, w5200 y w5500 ethernet shield y dispositivos clon enc28J60, y soporte para esp32 y esp8266.

Ahora también puede agregar archivos adjuntos, cargados desde un dispositivo de almacenamiento como SD o SPIFFS. Aquí el uso de ethernet de Arduino.

Suministros

  • Arduino Mega
  • enc28J60
  • tarjeta SD

Paso 1: Seleccione el dispositivo correcto de la serie ENC28J60 o W5100

Seleccione el dispositivo correcto Serie ENC28J60 o W5100
Seleccione el dispositivo correcto Serie ENC28J60 o W5100

Arduino, normalmente, administra la red con un dispositivo externo, el dispositivo estándar como w5100 usa la biblioteca Ethernet, los clones ENC28J60 tienen algunas bibliotecas para seleccionar.

Para seleccionar su dispositivo, debe ir al archivo de biblioteca EMailSenderKey.h y configurar el correcto

#define DEFAULT_EMAIL_NETWORK_TYPE_ARDUINO NETWORK_ENC28J60 // Predeterminado

La biblioteca cargada para administrar este tipo de dispositivo es UIPEthernet, puede encontrar la biblioteca en el administrador de bibliotecas del IDE de Arduino

o puede cambiar el tipo de red predeterminado

#define DEFAULT_EMAIL_NETWORK_TYPE_ARDUINO NETWORK_W5100

Esta es la implementación estándar y la biblioteca de uso de Ethernet.

Una idea importante a tener en cuenta es que este escudo de Ethernet no admite SSL o TLS, por lo que debe encontrar un proveedor SMTP que ofrezca una conexión SMTP sin este tipo de inscripción.

Creo un tema en el foro donde puedes agregar el proveedor que usas, que también puedes encontrar el mío.

Paso 2: Envíe un correo electrónico sencillo

Enviar correo electrónico simple
Enviar correo electrónico simple

Para enviar un correo electrónico con Arduino debes encontrar un proveedor que funcione sin SSL o TLS, para mi solución utilizo con el proveedor SendGrid.

Creo que el uso es muy, muy sencillo.

Entonces debes configurar el proveedor

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

Entonces debes crear un mensaje y enviarlo

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

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

Serial.println ("Estado de envío:");

Serial.println (resp.status);

Serial.println (código de resp.); Serial.println (resp.desc);

Paso 3: conecte un carrito SD para administrar archivos adjuntos

Conecte un carrito SD para administrar archivos adjuntos
Conecte un carrito SD para administrar archivos adjuntos

Para enviar archivos adjuntos debes conectar una tarjeta SD como en el esquema, si necesitas más información sobre la conexión consulta este artículo "Cómo usar la tarjeta SD con esp8266, esp32 y Arduino".

Paso 4: envíe un correo electrónico con archivos adjuntos

Para enviar correos electrónicos con archivos adjuntos, debe encontrar un proveedor que admita esa funcionalidad, mi proveedor de sendgrid no admite eso y GMX, el proveedor que utilicé para la prueba, no admite más.

Pero si encuentra un nuevo proveedor, puede usar este código para adjuntar los archivos.

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

EMailSender:: Attachments attachs = {1, fileDescriptor};

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

Paso 5: el resultado

El resultado
El resultado

Aquí el correo electrónico enviado con un proveedor esp8266 y GMail (para usar GMail debe habilitar un programa externo).

Paso 6: biblioteca

Puede encontrar la biblioteca en GitHub

Y debes preguntar funciones o informar errores en el foro.

Documentación adicional aquí.

Recomendado: