Mục lục:

Cách gửi email có tệp đính kèm với Arduino, Esp32 và Esp8266: 6 bước
Cách gửi email có tệp đính kèm với Arduino, Esp32 và Esp8266: 6 bước

Video: Cách gửi email có tệp đính kèm với Arduino, Esp32 và Esp8266: 6 bước

Video: Cách gửi email có tệp đính kèm với Arduino, Esp32 và Esp8266: 6 bước
Video: Esp8266 send email part 2 / Gửi email đính kèm file các loại 2024, Tháng mười một
Anonim
Cách gửi email có tệp đính kèm với Arduino, Esp32 và Esp8266
Cách gửi email có tệp đính kèm với Arduino, Esp32 và Esp8266

Ở đâ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

Chọn đúng thiết bị ENC28J60 hoặc W5100 Series
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 đơn giản
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

Kết nối giỏ hàng SD để quản lý tệp đính kèm
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ả

Kết quả
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.

Đề xuất: