Оглавление:
2025 Автор: John Day | [email protected]. Последнее изменение: 2025-01-13 06:58
Здесь я хотел бы объяснить версию 2 моей библиотеки EMailSender, большую эволюцию по сравнению с версией 1, с поддержкой Arduino с w5100, w5200 и w5500 ethernet Shield и устройствами клонирования enc28J60, а также поддержкой esp32 и esp8266.
Теперь вы также можете добавлять вложения, загруженные с устройства хранения, такого как SD или SPIFFS. Здесь использование Ethernet Arduino.
Запасы
- Ардуино Мега
- enc28J60
- SD Card
Шаг 1. Выберите правильное устройство серии ENC28J60 или W5100
Arduino, как правило, управляет сетью с помощью внешнего устройства, стандартное устройство, такое как w5100, использует библиотеку Ethernet, у клонов ENC28J60 есть несколько библиотек на выбор.
Чтобы выбрать свое устройство, вы должны перейти в файл библиотеки EMailSenderKey.h и установить правильный
#define DEFAULT_EMAIL_NETWORK_TYPE_ARDUINO NETWORK_ENC28J60 // По умолчанию
Библиотека, загруженная для управления этим типом устройств, - это UIPEthernet, вы можете найти библиотеку в диспетчере библиотек в Arduino IDE.
или вы можете изменить тип сети по умолчанию
#define DEFAULT_EMAIL_NETWORK_TYPE_ARDUINO NETWORK_W5100
Это стандартная реализация и использование библиотеки Ethernet.
Важно учитывать, что этот экран Ethernet не поддерживает SSL или TLS, поэтому вы должны найти поставщика SMTP, который предлагает SMTP-соединение без этого типа шифрования.
Я создаю тему на форуме, где вы можете добавить провайдера, которого используете, вы также можете найти моего.
Шаг 2. Отправьте простое электронное письмо
Чтобы отправить электронное письмо с помощью Arduino, вы должны найти поставщика, который работает без SSL или TLS. В моем решении я использую поставщика SendGrid.
Я думаю, что использование очень простое.
Итак, вы должны установить поставщика
EMailSender emailSend ("ВАШ-SENDGRID-API-KEY", "ВАШ-SENDGRID-PASSWD", "FROM-EMAIL", "smtp.sendgrid.net", 25);
Затем вы должны создать сообщение и отправить его
EMailSender:: сообщение EMailMessage; message.subject = "Soggetto"; message.message = "Ciao come staiio bene.
EMailSender:: Response resp = emailSend.send ("[email protected]", сообщение);
Serial.println ("Статус отправки:");
Serial.println (соответственно статус);
Serial.println (соотв. Код); Serial.println (соотв. Desc);
Шаг 3. Подключите тележку SD для управления вложениями
Вместо того, чтобы отправлять вложения, вы должны подключить SD-карту, как на схеме, если вам нужна дополнительная информация о подключении, обратитесь к этой статье «Как использовать SD-карту с esp8266, esp32 и Arduino».
Шаг 4. Отправьте электронное письмо с вложениями
Чтобы отправить электронное письмо с вложениями, вы должны найти поставщика, который поддерживает эту функцию, мой поставщик sendgrid не поддерживает это, а поставщик GMX, которого я использовал для теста, больше не поддерживает.
Но если вы найдете нового поставщика, вы можете использовать этот код для прикрепления файлов.
EMailSender:: FileDescriptior fileDescriptor [1]; fileDescriptor [0].filename = F ("test.txt"); fileDescriptor [0].url = F ("/ test.txt"); fileDescriptor [0].mime = MIME_TEXT_PLAIN; fileDescriptor [0].encode64 = false; fileDescriptor [0].storageType = EMailSender:: EMAIL_STORAGE_TYPE_SD;
EMailSender:: Attachments attachs = {1, fileDescriptor};
EMailSender:: Response resp = emailSend.send ("[email protected]", сообщение, вложения);
Шаг 5: результат
Здесь электронное письмо, отправленное с помощью esp8266 и провайдера GMail (для использования GMail необходимо использовать внешнюю программу).
Шаг 6: Библиотека
Вы можете найти библиотеку на GitHub
И вы должны спрашивать функции или сообщать об ошибках на форуме
Дополнительная документация здесь.