ESP8266: Como enviar e-mail por um servidor SMTP

Para a versão que usa SSL/TLS, veja este post.

Este código é um aperfeiçoamento do código apresentado aqui.

Testado com IDE 1.8.1 e ESP8266 Core v2.3.0

Melhorias:

  • Não é preciso pré-codificar usuário e senha em base64. Eu inclui as rotinas para isso;
  • Removi o uso de flash strings, que aparentemente era a causa da rotina demorar absurdamente em certos pontos;
  • Usei constantes no lugar de strings “hardcoded”;

Versão que prefiro

Eu criei esta versão porque preferia uma rotina de envio mais “limpa” e o log na porta serial feito de forma a representar com mais fidelidade a comunicação com o servidor.

 

This entry was posted in Informação. Bookmark the permalink.

4 Responses to ESP8266: Como enviar e-mail por um servidor SMTP

  1. Marco Otávio Souza Mello says:

    Nessa segunda versão, se você rodar várias vezes enviando e-mails, de tempos em tempos, em certo momento a memória vai estourar por conta do malloc, pra resolver é só desalocar no fim da função.

    • Jefferson says:

      Desculpe a demora para aprovar seu comentário e obrigado pela dica!

    • Jefferson says:

      Para resolver o problema indicado por Marco é preciso incluir uma linha:

      free(buf);

      no(s) lugar(es) apropriado(s) da função sendEmail().

      Não exatamente no fim da função, pois esta pode terminar em qualquer ponto onde há um “return”. Eu só vou corrigir a listagem do programa quando eu tiver tempo para voltar a esse problema e testar no ESP8266.

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *