Mục lục:
2025 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2025-01-13 06:58
Ở đây tôi muốn giải thích về phiên bản 2 của thư viện EMailSender của tôi, một sự tiến hóa lớn so với phiên bản 1, với sự hỗ trợ cho Arduino với các thiết bị sao chép ethernet w5100, w5200 và w5500 và hỗ trợ cho esp32 và esp8266.
Giờ đây, bạn cũng có thể thêm tệp đính kèm, được tải từ thiết bị lưu trữ như SD hoặc SPIFFS. Đây là cách sử dụng Arduino ethernet.
Quân nhu
- Arduino Mega
- enc28J60
- thẻ SD
Bước 1: Chọn đúng thiết bị ENC28J60 hoặc W5100 Series
Arduino, thông thường, quản lý mạng bằng thiết bị bên ngoài, thiết bị tiêu chuẩn như w5100 sử dụng thư viện Ethernet, bản sao ENC28J60 có một số thư viện để lựa chọn.
Để chọn thiết bị của mình, bạn phải truy cập tệp thư viện EMailSenderKey.h và đặt đúng thiết bị
#define DEFAULT_EMAIL_NETWORK_TYPE_ARDUINO NETWORK_ENC28J60 // Mặc định
Thư viện được tải để quản lý loại thiết bị này là UIPEthernet, bạn có thể tìm thư viện trên trình quản lý thư viện của Arduino IDE
hoặc bạn có thể thay đổi loại mạng mặc định
# xác định DEFAULT_EMAIL_NETWORK_TYPE_ARDUINO NETWORK_W5100
Đây là thư viện Ethernet sử dụng và triển khai tiêu chuẩn.
Một suy nghĩ quan trọng cần xem xét là lá chắn Ethernet này không hỗ trợ SSL hoặc TLS, vì vậy bạn phải tìm nhà cung cấp SMTP cung cấp kết nối SMTP không có loại mã hóa này.
Tôi tạo một chủ đề trên diễn đàn nơi bạn có thể thêm nhà cung cấp mà bạn sử dụng, bạn cũng có thể tìm thấy nhà cung cấp của tôi.
Bước 2: Gửi Email Đơn giản
Để gửi email bằng Arduino, bạn phải tìm một nhà cung cấp làm việc mà không cần SSL hoặc TLS, Đối với giải pháp của tôi, tôi sử dụng với nhà cung cấp SendGrid.
Tôi nghĩ rằng cách sử dụng rất đơn giản.
Vì vậy, bạn phải đặt nhà cung cấp
EMailSender emailSend ("YOUR-SENDGRID-API-KEY", "YOUR-SENDGRID-PASSWD", "FROM-EMAIL", "smtp.sendgrid.net", 25);
Hơn là bạn phải tạo một tin nhắn và gửi nó
EMailSender:: Tin nhắn EMailMessage; message.subject = "Soggetto"; message.message = "Xin chào!
EMailSender:: Response resp = emailSend.send ("[email protected]", tin nhắn);
Serial.println ("Trạng thái đang gửi:");
Serial.println (resp.status);
Serial.println (mã tương ứng); Serial.println (resp.desc);
Bước 3: Kết nối Giỏ hàng SD để Quản lý Tệp đính kèm
Để gửi tệp đính kèm, bạn phải kết nối thẻ SD như trong lược đồ, nếu bạn cần thêm thông tin về kết nối, hãy tham khảo bài viết này "Cách sử dụng thẻ SD với esp8266, esp32 và Arduino".
Bước 4: Gửi email có tệp đính kèm
Để gửi email có tệp đính kèm, bạn phải tìm nhà cung cấp hỗ trợ chức năng đó, nhà cung cấp mạng lưới gửi của tôi không hỗ trợ chức năng đó và GMX nhà cung cấp mà tôi đã sử dụng để kiểm tra không còn hỗ trợ nữa.
Nhưng nếu bạn tìm thấy một nhà cung cấp mới, bạn có thể sử dụng mã này để đính kèm các tệp.
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:: Phần đính kèm tệp đính kèm = {1, fileDescriptor};
EMailSender:: Response resp = emailSend.send ("[email protected]", tin nhắn, tệp đính kèm);
Bước 5: Kết quả
Đây là email được gửi bằng nhà cung cấp esp8266 và GMail (để sử dụng GMail, bạn phải sử dụng chương trình bên ngoài).
Bước 6: Thư viện
Bạn có thể tìm thấy thư viện trên GitHub
Và bạn phải hỏi các tính năng hoặc báo cáo lỗi trên Diễn đàn
Tài liệu bổ sung tại đây.