ESP32 S3 - Gmail

Ce tutoriel vous montre comment faire en sorte que l'ESP32 S3 envoie un e-mail via votre compte Gmail. Le message est envoyé depuis une adresse Gmail, mais il peut être livré à n'importe quel fournisseur d'e-mail.

Ce que vous allez construire :

  1. Un projet ESP32 S3 qui se connecte à votre réseau WiFi
  2. Un expéditeur qui se connecte à Gmail à l'aide d'un mot de passe d'application
  3. Un système de notification qui envoie un e-mail à l'adresse de votre choix
  4. Un point de départ que vous pouvez étendre pour envoyer des e-mails quand un capteur ou un événement est déclenché
ESP32 S3 Gmail

Matériel requis

1×ESP32 S3 WROOM N16R8
1×Alternativement: ESP32 S3 SuperMini Dev Module
1×Alternativement: ESP32 S3 Uno-form Board
1×Alternativement: ESP32 S3 Camera Board
1×Câble USB Type-A vers Type-C (pour PC USB-A)
1×Câble USB Type-C vers Type-C (pour PC USB-C)
1×Recommandé: Screw Terminal Expansion Board for ESP32 S3
1×Recommandé: Breakout Expansion Board for ESP32 S3
1×Recommandé: Power Splitter for ESP32 S3

Ou vous pouvez acheter les kits suivants:

1×Kit de Démarrage DIYables ESP32 S3 (ESP32 S3 inclus)
1×Kit de Capteurs DIYables (18 capteurs/écrans)
Divulgation : Certains des liens fournis dans cette section sont des liens affiliés Amazon. Nous pouvons recevoir une commission pour tout achat effectué via ces liens, sans coût supplémentaire pour vous. Nous vous remercions de votre soutien.

Préparation préalable

Avant de commencer à coder, vous avez besoin d'un compte Gmail et d'un mot de passe d'application pour celui-ci. Veuillez d'abord lire les points ci-dessous.

  • N'utilisez pas votre compte Gmail principal. Créez un nouveau compte juste pour les tests, afin que votre compte personnel reste en sécurité.
  • Le code de l'ESP32 S3 n'utilise pas votre mot de passe de connexion Gmail habituel. Il utilise plutôt un « mot de passe d'application » spécial que vous créez dans les paramètres de votre compte Google.

Suivez ces étapes :

Sécurité Gmail
  • Activez la validation en deux étapes. Les mots de passe d'application ne sont disponibles que lorsque la validation en deux étapes est active.
  • Ouvrez la page Mots de passe d'application Google et créez un nouveau mot de passe d'application. N'importe quel nom convient.
Mots de passe d'application Google
  • Appuyez sur le bouton Créer. Google vous montrera un mot de passe de 16 caractères comme celui ci-dessous :
Mots de passe d'application Gmail
  • Copiez ce mot de passe de 16 caractères et conservez-le en lieu sûr. Vous le mettrez dans le code de l'ESP32 S3 dans la section suivante.

※ Note:

Google met parfois à jour l'apparence de ses pages. Si les étapes ci-dessus ne vous mènent pas aux « mots de passe d'application », cherchez en ligne « How to get Google App Passwords » pour trouver le guide le plus récent.

Code ESP32 S3

Le code ci-dessous configure l'ESP32 S3 pour se connecter au WiFi et envoyer un e-mail via Gmail avec la bibliothèque ESP Mail Client. Avant de le téléverser, saisissez vos informations WiFi, l'adresse Gmail de l'expéditeur, le mot de passe d'application, et l'adresse e-mail du destinataire.

/* * Ce code ESP32 S3 a été développé par newbiely.fr * Ce code ESP32 S3 est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/tutorials/esp32-s3/esp32-s3-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(115200); 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 S3"; String textMsg = "This is an email sent from ESP32 S3.\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 S3"); 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(); } }

Étapes rapides

  • Première utilisation de l'ESP32 S3 ? Consultez d'abord notre guide ESP32 S3 - Premiers pas avant de continuer.
  • Branchez la carte ESP32 S3 sur votre ordinateur avec un câble USB.
  • Lancez l'Arduino IDE sur votre ordinateur.
  • Choisissez la bonne carte ESP32 S3 et le bon port COM.
  • Cliquez sur l'icône Library Manager à gauche de l'Arduino IDE pour l'ouvrir.
  • Tapez ESP Mail Client dans la zone de recherche, puis cherchez la bibliothèque ESP Mail Client de Mobizt.
  • Appuyez sur le bouton Install pour ajouter la bibliothèque ESP Mail Client.
  • Search for ESP Mail Client created by Mobizt and click the Install button.
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
ESP32S3 Dev Module
Library Manager
Type:
All
Topic:
All
ESP Mail Client by Mobizt
The library also supported other Arduino devices using Clients interfaces e.g. WiFiClient, EthernetClient, and GSMClient. More info
3.4.21
INSTALL
Newbiely.ino
···
1 void setup() {
Output
Serial Monitor
Ln 1, Col 1
ESP32S3 Dev Module on COM15
1
  • Copiez le code ci-dessus et collez-le dans l'Arduino IDE.
  • Remplacez le nom et le mot de passe WiFi par les vôtres en modifiant les deux constantes WIFI_SSID et WIFI_PASSWORD.
  • Remplacez l'e-mail et le mot de passe de l'expéditeur par les vôtres en modifiant les deux constantes SENDER_EMAIL et SENDER_PASSWORD.
  • Remplacez l'e-mail du destinataire par le vôtre en modifiant la constante RECIPIENT_EMAIL. Vous pouvez utiliser la même adresse que l'expéditeur.

※ Note:

  • L'e-mail de l'expéditeur DOIT être une adresse Gmail
  • Le mot de passe de l'expéditeur est le mot de passe d'application que vous avez créé plus tôt
  • L'e-mail du destinataire peut provenir de n'importe quel fournisseur
  • Appuyez sur le bouton Upload dans l'Arduino IDE pour envoyer le code à l'ESP32 S3.
  • Ouvrez le moniteur série.
  • Regardez le résultat sur le moniteur série.
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
ESP32S3 Dev Module
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'ESP32S3 Dev Module' 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: Jan 15, 2026 09:21:05 Recipient: xxxxxx@gmail.com Subject: Email Notification from ESP32 S3 ----------------
Ln 11, Col 1
ESP32S3 Dev Module on COM15
2
  • Ouvrez la boîte de réception de l'e-mail du destinataire. Vous devriez voir un e-mail comme celui ci-dessous.
L'ESP32 S3 envoie un e-mail
  • Astuce : Mettez vos identifiants de connexion dans un fichier de configuration séparé et listez ce fichier dans .gitignore. Ainsi, vous ne partagerez pas vos informations privées par erreur.

Applications

Envoyer des e-mails depuis l'ESP32 S3 est utile dans de nombreux projets d'alerte IoT. Voici quelques exemples courants :

  1. Alertes de sécurité : Recevez un e-mail immédiatement quand un capteur de mouvement ou de porte est activé.
  2. Surveillance environnementale : Soyez averti quand la température, l'humidité ou la qualité de l'air dépasse une limite définie.
  3. Détection de fuite d'eau : Recevez une alerte dès qu'un capteur d'eau détecte de l'humidité.
  4. Rapports d'état d'appareil : Envoyez des e-mails réguliers pour confirmer qu'un appareil distant est toujours en ligne et fonctionne.
  5. Journalisation d'événements : Envoyez un résumé des relevés de capteurs ou des événements par e-mail selon un calendrier fixe.

Vidéo

La vidéo ci-dessous vous guide à travers ce projet ESP32 S3 étape par étape.

Défis

Une fois que l'envoi d'e-mails de base fonctionne, vous pouvez améliorer le projet et en apprendre davantage. Essayez ces défis quand vous êtes prêt.

  1. Débutant : Changez le code pour qu'il envoie deux e-mails en une exécution, chacun à un destinataire différent. Puis vérifiez que les deux e-mails arrivent.
  2. Intermédiaire : Connectez un bouton poussoir à l'ESP32 S3 et envoyez un e-mail seulement quand le bouton est appuyé, pas juste après le démarrage.
  3. Avancé : Ajoutez un capteur de température et d'humidité DHT22, et envoyez automatiquement un e-mail d'alerte quand la température dépasse une limite que vous pouvez définir.

※ NOS MESSAGES

  • N'hésitez pas à partager le lien de ce tutoriel. Cependant, veuillez ne pas utiliser notre contenu sur d'autres sites web. Nous avons investi beaucoup d'efforts et de temps pour créer ce contenu, veuillez respecter notre travail !