Índice:
2025 Autor: John Day | [email protected]. Última modificação: 2025-01-13 06:58
Aqui eu gostaria de explicar a versão 2 da minha biblioteca EMailSender, uma grande evolução em relação à versão 1, com suporte para Arduino com w5100, w5200 e w5500 ethernet shield e dispositivos clone enc28J60, e suporte para esp32 e esp8266.
Agora você também pode adicionar anexos, carregados de um dispositivo de armazenamento como SD ou SPIFFS. Aqui o uso de ethernet Arduino.
Suprimentos
- Arduino Mega
- enc28J60
- cartão SD
Etapa 1: Selecione o dispositivo correto ENC28J60 ou série W5100
Arduino, normalmente, gerencia a rede com dispositivo externo, o dispositivo padrão como w5100 usa biblioteca Ethernet, os clones ENC28J60 têm algumas bibliotecas para selecionar.
Para selecionar o seu dispositivo, você deve ir no arquivo de biblioteca EMailSenderKey.h e definir o correto
#define DEFAULT_EMAIL_NETWORK_TYPE_ARDUINO NETWORK_ENC28J60 // Padrão
A biblioteca carregada para gerenciar este tipo de dispositivo é UIPEthernet, você pode encontrar a biblioteca no gerenciador de bibliotecas do IDE do Arduino
ou você pode alterar o tipo de rede padrão
#define DEFAULT_EMAIL_NETWORK_TYPE_ARDUINO NETWORK_W5100
Esta é a implementação padrão e usa a biblioteca Ethernet.
Uma coisa importante a se considerar é que esse escudo Ethernet não suporta SSL ou TLS, então você deve encontrar um provedor SMTP que ofereça uma conexão SMTP sem esse tipo de inscrição.
Eu crio um tópico no fórum onde você pode adicionar o provedor que você usa, que você pode encontrar o meu também.
Etapa 2: enviar e-mail simples
Para enviar um e-mail com o Arduino você deve encontrar um provedor que funcione sem SSL ou TLS, para minha solução eu uso com o provedor SendGrid.
Acho que o uso é muito simples.
Portanto, você deve definir o provedor
EMailSender emailSend ("YOUR-SENDGRID-API-KEY", "YOUR-SENDGRID-PASSWD", "FROM-EMAIL", "smtp.sendgrid.net", 25);
Então você deve criar uma mensagem e enviá-la
EMailSender:: EMailMessage message; message.subject = "Soggetto"; message.message = "Ciao come staiio bene.
EMailSender:: Response resp = emailSend.send ("[email protected]", mensagem);
Serial.println ("Status de envio:");
Serial.println (resp.status);
Serial.println (resp.code); Serial.println (resp.desc);
Etapa 3: Conecte um carrinho SD para gerenciar anexos
Além de enviar anexos, você deve conectar um cartão SD como no esquema, se precisar de mais informações sobre a conexão consulte este artigo "Como usar o cartão SD com esp8266, esp32 e Arduino".
Etapa 4: enviar e-mail com anexos
Para enviar e-mail com anexos você deve encontrar um provedor que suporte essa funcionalidade, meu provedor sendgrid não oferece suporte e GMX o provedor que usei para o teste não oferece mais suporte.
Mas se você encontrar um novo provedor, pode usar este código para anexar os arquivos.
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:: Attachments attachs = {1, fileDescriptor};
EMailSender:: Response resp = emailSend.send ("[email protected]", mensagem, anexos);
Etapa 5: o resultado
Aqui o e-mail enviado com um provedor esp8266 e GMail (para usar o GMail você deve enviar um programa externo).
Etapa 6: Biblioteca
Você pode encontrar a biblioteca no GitHub
E você deve perguntar sobre recursos ou relatar bugs no Fórum
Documentação adicional aqui.