esp-idf/examples/protocols/smtp_client
..
main
CMakeLists.txt
Makefile
README.md

README.md

SMTP Client Example

The Example is SMTP client demo. It sends and email with attachment to recipient.

How to use the example

Configure the project

idf.py menuconfig
  • Configure Wi-Fi or Ethernet under "Example Connection Configuration" menu. See "Establishing Wi-Fi or Ethernet Connection" section in examples/protocols/README.md for more details.

Please set the following parameters under example config for SMTP client demo to work:

  • Email server, port, sender's email ID, password, recipient's email ID.

Build and Flash

Build the project and flash it to the board, then run monitor tool to view serial output:

idf.py -p PORT flash monitor

(Replace PORT with the name of the serial port to use.)

(To exit the serial monitor, type Ctrl-].)

See the Getting Started Guide for full steps to configure and use ESP-IDF to build projects.

Example output

I (3212) smtp_example: Loading the CA root certificate...
I (3212) smtp_example: Setting hostname for TLS session...
I (3222) smtp_example: Setting up the SSL/TLS structure...
I (3232) smtp_example: Connecting to smtp.googlemail.com:587...
I (3542) smtp_example: Connected.

220 smtp.googlemail.com ESMTP r62sm20390571pfc.89 - gsmtp
I (3952) smtp_example: Writing EHLO to server...

250-smtp.googlemail.com at your service, [182.75.158.118]
250-SIZE 35882577
250-8BITMIME
250-STARTTLS
250-ENHANCEDSTATUSCOD
ES
250-PIPELINING
250-CHUNKING
250 SMTPUTF8
I (4262) smtp_example: Writing STARTTLS to server...

220 2.0.0 Ready to start TLS
I (4562) smtp_example: Performing the SSL/TLS handshake...
I (5692) smtp_example: Verifying peer X.509 certificate...
I (5692) smtp_example: Certificate verified.
I (5692) smtp_example: Cipher suite is TLS-ECDHE-RSA-WITH-AES-128-GCM-SHA256
I (5702) smtp_example: Authentication...
I (5702) smtp_example: Write AUTH LOGIN
I (6002) smtp_example: Write USER NAME
I (6302) smtp_example: Write PASSWORD
I (6822) smtp_example: Write MAIL FROM
I (7132) smtp_example: Write RCPT
I (7432) smtp_example: Write DATA
I (8252) smtp_example: Write Content
I (10202) smtp_example: Email sent!

Note:

  • You might need to enable permission for less secure apps from email provider. This is because these email providers (e.g. gmail) insist on OAUTH authorization.