xreef / EMailSender

Arduino, esp32, Esp8266 EMailSender with Arduino IDE, simple library to send email via smtp with attachments.
https://www.mischianti.org/category/my-libraries/emailsender-send-email-with-attachments/
MIT License
75 stars 28 forks source link
arduino arduino-library email-sender esp32 esp8266 ethernet gmail-smtp pico-w raspberry rp2040 smtp wifi wifinina
Support forum EMailSender English
Forum supporto EMailSender italiano

# #

Library to send EMail with attachments

Arduino (support W5100 like must be set, and ENC28J60 via UIPEthernet), esp8266 (SPIFFS, LittleFS and SD) (core <=2.4.2 must be set) and esp32 (SPIFFS, LITTLEFS, Ffat and SD), Arduino WiFiNINA SAMD devices (Arduino MKR WiFi 1010, Vidor 4000 UNO WiFi Rev.2 ecc.) (SD).

Complete english tutorial

Send email with attachments (EMailSender v2.x library): Arduino Ethernet

Send email with attachments (EMailSender v2.x library): esp32 and esp8266

Tutorial completo in italiano

Inviare email con allegati (libreria v2.x): Arduino Ethernet

Inviare email con allegati (libreria v2.x): esp32 e esp8266

Change log

23/11/2020: v2.1.3 Add management of name on EMail from

Installation Tutorial:

To download. click the DOWNLOADS button in the top right corner, rename the uncompressed folder EMailSender. Check that the EMailSender folder contains EMailSender\\.cpp and EMailSender.h. Place the EMailSender library folder your <arduinosketchfolder>/libraries/ folder. You may need to create the libraries subfolder if its your first library. Restart the IDE.

EMailSender library to send EMail.

With this library you can send email with attach: Arduino Network supported

esp8266 you must pay attention, older core from 2.4.2 must be activated Storage supported

esp32 Storage supported

Constructor: Default value is quite simple and use GMail as smtp server.

    EMailSender emailSend("smtp.account@gmail.com", "password");

If you want use onother provider you can use more complex (but simple) contructor

    EMailSender(const char* email_login, const char* email_password, const char* email_from, const char* smtp_server, uint16_t smtp_port);

You must connect to WIFI :P.

Create a message with the structure EMailMessage

    EMailSender::EMailMessage message;
    message.subject = "Subject";
    message.message = "Hi, How are you<br>Fine.";

Create array of attachments

//      Two file
    EMailSender::FileDescriptior fileDescriptor[2];
    fileDescriptor[1].filename = F("test.txt");
    fileDescriptor[1].url = F("/test.txt");
    fileDescriptor[1].mime = MIME_TEXT_PLAIN;
    fileDescriptor[1].storageType = EMailSender::EMAIL_STORAGE_TYPE_SD;

    fileDescriptor[0].filename = F("logo.jpg");
    fileDescriptor[0].url = F("/logo.jpg");
    fileDescriptor[0].mime = "image/jpg";
    fileDescriptor[0].encode64 = true;
    fileDescriptor[0].storageType = EMailSender::EMAIL_STORAGE_TYPE_SD;

    EMailSender::Attachments attachs = {2, fileDescriptor};

Send message:

    EMailSender::Response resp = emailSend.send("account_to_send@gmail.com", message, attachs);

Then check the response:

    Serial.println("Sending status: ");
    Serial.println(resp.code);
    Serial.println(resp.desc);
    Serial.println(resp.status);

From version 2.1.1 new features distribution list to send CC and CCn email.

Example output:

Connection: ESTABLISHED
Got IP address: 192.168.1.104
Sending status: 
1
0
Message sent!

https://downloads.arduino.cc/libraries/logs/github.com/xreef/EMailSender/