Spisu treści:
2025 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2025-01-13 06:58
Tutaj chciałbym wyjaśnić wersję 2 mojej biblioteki EMailSender, duży szacunek ewolucyjny do wersji 1, z obsługą Arduino z tarczą ethernetową w5100, w5200 i w5500 oraz urządzeniami do klonowania enc28J60, a także obsługą esp32 i esp8266.
Teraz możesz również dodawać załączniki ładowane z urządzenia pamięci masowej, takiego jak SD lub SPIFFS. Tutaj wykorzystanie Arduino Ethernet.
Kieszonkowe dzieci
- Arduino Mega
- enc28J60
- karta SD
Krok 1: Wybierz prawidłowe urządzenie serii ENC28J60 lub W5100
Arduino zwykle zarządza siecią za pomocą urządzenia zewnętrznego, standardowe urządzenie, takie jak w5100, korzysta z biblioteki Ethernet, klony ENC28J60 mają kilka bibliotek do wyboru.
Aby wybrać urządzenie, musisz przejść do pliku biblioteki EMailSenderKey.h i ustawić poprawny
#define DEFAULT_EMAIL_NETWORK_TYPE_ARDUINO NETWORK_ENC28J60 // Domyślnie
Biblioteka załadowana do zarządzania tego typu urządzeniem to UIPEthernet, bibliotekę można znaleźć w menedżerze bibliotek Arduino IDE
lub możesz zmienić domyślny typ sieci
#define DEFAULT_EMAIL_NETWORK_TYPE_ARDUINO NETWORK_W5100
Jest to standardowa implementacja i wykorzystanie biblioteki Ethernet.
Ważnym do rozważenia jest to, że ta osłona Ethernet nie obsługuje SSL ani TLS, więc musisz znaleźć dostawcę SMTP, który oferuje połączenie SMTP bez tego typu szyfrowania.
Tworzę wątek na forum, na którym możesz dodać dostawcę, którego używasz, a także mojego.
Krok 2: Wyślij prosty e-mail
Aby wysłać wiadomość e-mail za pomocą Arduino, musisz znaleźć dostawcę, który działa bez SSL lub TLS. Do mojego rozwiązania używam dostawcy SendGrid.
Myślę, że użycie jest bardzo proste.
Więc musisz ustawić dostawcę
EMailSender emailSend("TWÓJ-KLUCZ-API-SENDGRID", "TWÓJ-SENDGRID-PASSWD", "FROM-EMAIL", "smtp.sendgrid.net", 25);
Następnie musisz stworzyć wiadomość i wysłać ją
EMailSender::wiadomość EMailMessage; message.subject = "Soggetto"; message.message = "Ciao come bene bene.
EMailSender::Response resp = emailSend.send("[email protected]", wiadomość);
Serial.println("Stan wysyłania: ");
Serial.println(odp.stan);
Serial.println(odp.kod); Serial.println(odp.desc);
Krok 3: Podłącz koszyk SD, aby zarządzać załącznikami
Aby wysłać załączniki, musisz podłączyć kartę SD jak w schemacie, jeśli potrzebujesz więcej informacji na temat połączenia, zapoznaj się z tym artykułem "Jak używać karty SD z esp8266, esp32 i Arduino".
Krok 4: Wyślij e-mail z załącznikami
Aby wysłać e-mail z załącznikami, musisz znaleźć dostawcę, który obsługuje tę funkcjonalność, mój dostawca sendgrid nie obsługuje tej funkcji, a dostawca GMX, którego użyłem do testu, nie ma już wsparcia.
Ale jeśli znajdziesz nowego dostawcę, możesz użyć tego kodu, aby załączyć pliki.
EMailSender::FileDescriptior fileDescriptor[1]; fileDescriptor[0].nazwapliku = 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 Attachments = {1, fileDescriptor};
EMailSender::Response resp = emailSend.send("[email protected]", wiadomość, załączniki);
Krok 5: Wynik
Tutaj e-mail wysłany z esp8266 i dostawcą Gmaila (aby korzystać z Gmaila, musisz włączyć zewnętrzny program).
Krok 6: Biblioteka
Bibliotekę znajdziesz na GitHub
I musisz pytać o funkcje lub zgłaszać błędy na forum
Dodatkowa dokumentacja tutaj.