สารบัญ:

วิธีส่งอีเมลพร้อมไฟล์แนบด้วย Arduino, Esp32 และ Esp8266: 6 ขั้นตอน
วิธีส่งอีเมลพร้อมไฟล์แนบด้วย Arduino, Esp32 และ Esp8266: 6 ขั้นตอน

วีดีโอ: วิธีส่งอีเมลพร้อมไฟล์แนบด้วย Arduino, Esp32 และ Esp8266: 6 ขั้นตอน

วีดีโอ: วิธีส่งอีเมลพร้อมไฟล์แนบด้วย Arduino, Esp32 และ Esp8266: 6 ขั้นตอน
วีดีโอ: 📲💡 Arduino EP.1 การติดตั้ง Arduino+ESP8266 WiFi ทีละขั้นตอน 2024, พฤศจิกายน
Anonim
วิธีส่งอีเมลพร้อมไฟล์แนบด้วย Arduino, Esp32 และ Esp8266
วิธีส่งอีเมลพร้อมไฟล์แนบด้วย Arduino, Esp32 และ Esp8266

ที่นี่ ฉันต้องการอธิบายเวอร์ชัน 2 ของไลบรารี EMailSender ของฉัน ซึ่งเป็นวิวัฒนาการครั้งใหญ่เมื่อเทียบกับเวอร์ชัน 1 โดยรองรับ Arduino ที่มีอีเธอร์เน็ตชิลด์ w5100, w5200 และ w5500 และอุปกรณ์โคลน enc28J60 และรองรับ esp32 และ esp8266

ตอนนี้คุณสามารถเพิ่มไฟล์แนบได้ด้วย โดยโหลดจากอุปกรณ์จัดเก็บข้อมูลอย่าง SD หรือ SPIFFS การใช้งาน Arduino อีเธอร์เน็ตที่นี่

เสบียง

  • Arduino Mega
  • enc28J60
  • การ์ด SD

ขั้นตอนที่ 1: เลือกอุปกรณ์ที่ถูกต้อง ENC28J60 หรือ W5100 Series

เลือกอุปกรณ์ที่ถูกต้อง ENC28J60 หรือ W5100 Series
เลือกอุปกรณ์ที่ถูกต้อง ENC28J60 หรือ W5100 Series

โดยปกติ Arduino จะจัดการเครือข่ายด้วยอุปกรณ์ภายนอก อุปกรณ์มาตรฐานเช่น w5100 ใช้ไลบรารีอีเทอร์เน็ต โคลน ENC28J60 มีบางไลบรารีให้เลือก

ในการเลือกอุปกรณ์ของคุณ คุณต้องไปที่ไฟล์ไลบรารี EMailSenderKey.h และตั้งค่าให้ถูกต้อง

#define DEFAULT_EMAIL_NETWORK_TYPE_ARDUINO NETWORK_ENC28J60 // ค่าเริ่มต้น

ไลบรารีที่โหลดเพื่อจัดการอุปกรณ์ประเภทนี้คือ UIPEthernet คุณสามารถค้นหาไลบรารีบนตัวจัดการไลบรารีของ Arduino IDE

หรือคุณสามารถเปลี่ยนประเภทเครือข่ายเริ่มต้นได้

#define DEFAULT_EMAIL_NETWORK_TYPE_ARDUINO NETWORK_W5100

นี่คือการใช้งานมาตรฐานและใช้ไลบรารีอีเทอร์เน็ต

สิ่งสำคัญที่ต้องพิจารณาคือ อีเทอร์เน็ตชิลด์นี้ไม่รองรับ SSL หรือ TLS ดังนั้นคุณต้องค้นหาผู้ให้บริการ SMTP ที่เสนอการเชื่อมต่อ SMTP โดยไม่มีการเข้ารหัสประเภทนี้

ฉันสร้างหัวข้อในฟอรัมที่คุณสามารถเพิ่มผู้ให้บริการที่คุณใช้ซึ่งคุณสามารถหาของฉันได้

ขั้นตอนที่ 2: ส่งอีเมลอย่างง่าย

ส่งอีเมลอย่างง่าย
ส่งอีเมลอย่างง่าย

ในการส่งอีเมลกับ Arduino คุณต้องค้นหาผู้ให้บริการที่ทำงานโดยไม่มี SSL หรือ TLS สำหรับโซลูชันของฉัน ฉันใช้กับผู้ให้บริการ SendGrid

ฉันคิดว่าการใช้งานนั้นง่ายมาก

ดังนั้นคุณต้องตั้งค่าผู้ให้บริการ

EMailSender emailSend("YOUR-SENDGRID-API-KEY", "YOUR-SENDGRID-PASSWD", "FROM-EMAIL", "smtp.sendgrid.net", 25);

กว่าที่คุณต้องสร้างข้อความและส่งมัน

EMailSender::EMailMessage ข้อความ; message.subject = "Soggetto"; message.message = "Ciao มา staiio bene

EMailSender::Response resp = emailSend.send("[email protected]", ข้อความ);

Serial.println("สถานะการส่ง: ");

Serial.println (สถานะตอบกลับ);

Serial.println (รหัสตอบกลับ); Serial.println(resp.desc);

ขั้นตอนที่ 3: เชื่อมต่อ SD Cart เพื่อจัดการไฟล์แนบ

เชื่อมต่อ SD Cart เพื่อจัดการไฟล์แนบ
เชื่อมต่อ SD Cart เพื่อจัดการไฟล์แนบ

กว่าจะส่งไฟล์แนบ คุณต้องเชื่อมต่อการ์ด 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 แนบ = {1, fileDescriptor};

EMailSender::Response resp = emailSend.send("[email protected]", ข้อความ, ไฟล์แนบ);

ขั้นตอนที่ 5: ผลลัพธ์

ผลลัพธ์
ผลลัพธ์

นี่คืออีเมลที่ส่งโดยผู้ให้บริการ esp8266 และ GMail (หากต้องการใช้ GMail คุณต้องเข้ารหัสโปรแกรมภายนอก)

ขั้นตอนที่ 6: ห้องสมุด

คุณสามารถค้นหาห้องสมุดได้ที่ GitHub

และคุณต้องถามคุณสมบัติหรือรายงานจุดบกพร่องในฟอรัม

เอกสารเพิ่มเติมที่นี่

แนะนำ: