Arduino Nano ESP32 - Gmail
Este guia mostrará como configurar o Arduino Nano ESP32 para enviar um e-mail por meio da sua conta do Gmail. Você pode enviar e-mails do seu Gmail para qualquer outra conta de e-mail.

Hardware Necessário
Or you can buy the following kits:
| 1 | × | DIYables Sensor Kit (18 sensors/displays) |
Divulgação: Alguns dos links desta seção são links de afiliado da Amazon. Podemos receber uma comissão pelas compras feitas por meio desses links, sem custo adicional para você. Agradecemos o seu apoio.
Pré-Preparação
Para usar o código, você precisa de uma conta do Gmail e de uma senha de app especial. Estes são os pontos principais para lembrar:
- Crie uma nova conta do Gmail especificamente para testes, não a sua conta de uso normal, para evitar problemas.
- A senha usada no código do Arduino Nano ESP32 não é a mesma que a senha do seu Gmail. Você precisa obter uma "Senha de app" na sua Conta do Google seguindo alguns passos.
Aqui estão os passos, um a um:
- Crie uma nova conta do Gmail.
- Faça login na conta que você criou.
- Acesse sua Conta do Google.
- Navegue até a seção "Segurança".

- Ative a Verificação em duas etapas (É necessário ativar a Verificação em duas etapas antes de usar senhas de app).
- Visite o site Senhas de app do Google e crie uma senha de app. Você pode dar a ela o nome que quiser.

- Clique no botão Criar. Uma senha de 16 dígitos aparecerá da seguinte forma:

- Salve este número de 16 dígitos. Você vai precisar dele para o código do Arduino Nano ESP32 no próximo passo.
※ Nota:
O layout do Google pode ser atualizado. Se você não conseguir localizar "Senhas de app" usando os passos acima, pesquise por "Como obter senhas de app do Google" para obter as instruções mais recentes.
Código Arduino Nano ESP32
/*
* Este código de Arduino Nano ESP32 foi desenvolvido por pt.newbiely.com
* Este código de Arduino Nano ESP32 é disponibilizado ao público sem nenhuma restrição.
* Para tutoriais completos e diagramas de ligação, visite:
* https://pt.newbiely.com/tutorials/arduino-nano-esp32/arduino-nano-esp32-gmail
*/
#include <WiFi.h>
#include <ESP_Mail_Client.h>
#define WIFI_SSID "YOUR_WIFI_SSID" // CHANGE IT
#define WIFI_PASSWORD "YOUR_WIFI_PASSWORD" // CHANGE IT
// the sender email credentials
#define SENDER_EMAIL "xxxxxx@gmail.com" // CHANGE IT
#define SENDER_PASSWORD "xxxx xxxx xxxx xxxx" // CHANGE IT to your Google App password
#define RECIPIENT_EMAIL "xxxxxx@gmail.com" // CHANGE IT
#define SMTP_HOST "smtp.gmail.com"
#define SMTP_PORT 587
SMTPSession smtp;
void setup() {
Serial.begin(9600);
WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
Serial.print("Connecting to Wi-Fi");
while (WiFi.status() != WL_CONNECTED) {
Serial.print(".");
delay(300);
}
Serial.println();
Serial.print("Connected with IP: ");
Serial.println(WiFi.localIP());
Serial.println();
String subject = "Email Notification from ESP32";
String textMsg = "This is an email sent from ESP32.\n";
textMsg += "Sensor value: ";
textMsg += "15"; // OR replace this value read from a sensor
gmail_send(subject, textMsg);
}
void loop() {
// YOUR OTHER CODE HERE
}
void gmail_send(String subject, String textMsg) {
// set the network reconnection option
MailClient.networkReconnect(true);
smtp.debug(1);
smtp.callback(smtpCallback);
Session_Config config;
// set the session config
config.server.host_name = SMTP_HOST;
config.server.port = SMTP_PORT;
config.login.email = SENDER_EMAIL;
config.login.password = SENDER_PASSWORD;
config.login.user_domain = F("127.0.0.1");
config.time.ntp_server = F("pool.ntp.org,time.nist.gov");
config.time.gmt_offset = 3;
config.time.day_light_offset = 0;
// declare the message class
SMTP_Message message;
// set the message headers
message.sender.name = F("ESP32");
message.sender.email = SENDER_EMAIL;
message.subject = subject;
message.addRecipient(F("To Whom It May Concern"), RECIPIENT_EMAIL);
message.text.content = textMsg;
message.text.transfer_encoding = "base64";
message.text.charSet = F("utf-8");
message.priority = esp_mail_smtp_priority::esp_mail_smtp_priority_low;
// set the custom message header
message.addHeader(F("Message-ID: <abcde.fghij@gmail.com>"));
// connect to the server
if (!smtp.connect(&config)) {
Serial.printf("Connection error, Status Code: %d, Error Code: %d, Reason: %s\n", smtp.statusCode(), smtp.errorCode(), smtp.errorReason().c_str());
return;
}
if (!smtp.isLoggedIn()) {
Serial.println("Not yet logged in.");
} else {
if (smtp.isAuthenticated())
Serial.println("Successfully logged in.");
else
Serial.println("Connected with no Auth.");
}
// start sending Email and close the session
if (!MailClient.sendMail(&smtp, &message))
Serial.printf("Error, Status Code: %d, Error Code: %d, Reason: %s\n", smtp.statusCode(), smtp.errorCode(), smtp.errorReason().c_str());
}
// callback function to get the Email sending status
void smtpCallback(SMTP_Status status) {
// print the current status
Serial.println(status.info());
// print the sending result
if (status.success()) {
Serial.println("----------------");
Serial.printf("Message sent success: %d\n", status.completedCount());
Serial.printf("Message sent failed: %d\n", status.failedCount());
Serial.println("----------------\n");
for (size_t i = 0; i < smtp.sendingResult.size(); i++) {
// get the result item
SMTP_Result result = smtp.sendingResult.getItem(i);
Serial.printf("Message No: %d\n", i + 1);
Serial.printf("Status: %s\n", result.completed ? "success" : "failed");
Serial.printf("Date/Time: %s\n", MailClient.Time.getDateTimeString(result.timestamp, "%B %d, %Y %H:%M:%S").c_str());
Serial.printf("Recipient: %s\n", result.recipients.c_str());
Serial.printf("Subject: %s\n", result.subject.c_str());
}
Serial.println("----------------\n");
// free the memory
smtp.sendingResult.clear();
}
}
Passos Rápidos
Para começar com o Arduino Nano ESP32, siga estes passos:
- Se você é novo no Arduino Nano ESP32, consulte o tutorial sobre como configurar o ambiente para o Arduino Nano ESP32 na Arduino IDE.
- Conecte a placa Arduino Nano ESP32 ao seu computador usando um cabo USB.
- Abra a Arduino IDE no seu computador.
- Selecione a placa Arduino Nano ESP32 e a porta COM correspondente.
- Abra o Library Manager clicando no ícone Library Manager à esquerda na Arduino IDE.
- Pesquise por ESP Mail Client e encontre a biblioteca de Mobizt.
- Clique no botão Install para instalar a biblioteca ESP Mail Client.

- Copie o código acima e cole-o na Arduino IDE.
- Digite o nome e a senha da sua rede WiFi onde está escrito WIFI_SID e WIFI_PASSWORD.
- Coloque seu e-mail e senha nos campos SENDER_EMAIL e SENDER_PASSWORD do código.
- Atualize RECIPIENT_EMAIL para o endereço de e-mail onde você quer receber as mensagens. Pode ser o seu próprio e-mail, se necessário.
※ Nota:
- O e-mail do remetente deve ser uma conta do Gmail.
- Use a Senha de app que você recebeu antes como a senha do remetente.
- O e-mail de quem vai receber pode ser de qualquer tipo.
- Pressione o botão Upload na Arduino IDE para transferir o código para o Arduino Nano ESP32.
- Abra o Serial Monitor.
- Verifique a saída no Serial Monitor.
8
Serial.println("Hello World!");
Message (Enter to send message to 'Arduino Nano ESP32' on 'COM15')
New Line
9600 baud
#### Message sent successfully
> C: message sent successfully
----------------
Message sent success: 1
Message sent failed: 0
----------------
Message No: 1
Status: success
Date/Time: May 27, 2024 04:42:50
Recipient: xxxxxx@gmail.com
Subject: Email Notification from Arduino Nano ESP32
----------------
- Confira a caixa de entrada do destinatário. Você encontrará um e-mail parecido com este:
