Tabla de contenido:
2025 Autor: John Day | [email protected]. Última modificación: 2025-01-13 06:57
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
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
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
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
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í.