İçindekiler:
2025 Yazar: John Day | [email protected]. Son düzenleme: 2025-01-13 06:58
Burada, w5100, w5200 ve w5500 ethernet kalkanı ve enc28J60 klon cihazları ile Arduino desteği ve esp32 ve esp8266 desteği ile sürüm 1'e göre büyük bir evrim olan kitaplığım EMailSender'ın 2. sürümünü açıklamak istiyorum.
Artık SD veya SPIFFS gibi depolama aygıtından yüklenen ekleri de ekleyebilirsiniz. İşte Arduino ethernet kullanımı.
Gereçler
- arduino mega
- enc28J60
- hafıza kartı
Adım 1: Doğru Cihaz ENC28J60 veya W5100 Serisini Seçin
Arduino, normalde ağı harici cihazla yönetir, w5100 gibi standart cihaz, ENC28J60 klonlarının seçebileceği bazı kütüphanelere sahip Ethernet kütüphanesini kullanır.
Cihazınızı seçmek için EMailSenderKey.h kitaplık dosyasına gitmeli ve doğru olanı ayarlamalısınız.
#define DEFAULT_EMAIL_NETWORK_TYPE_ARDUINO NETWORK_ENC28J60 // Varsayılan
Bu tür cihazları yönetmek için yüklenen kütüphane UIPEthernet'tir, kütüphaneyi Arduino IDE'nin kütüphane yöneticisinde bulabilirsiniz.
veya varsayılan ağ türünü değiştirebilirsiniz
#define DEFAULT_EMAIL_NETWORK_TYPE_ARDUINO NETWORK_W5100
Bu standart uygulamadır ve Ethernet kitaplığını kullanır.
Dikkate alınması gereken önemli bir düşünce, bu Ethernet kalkanının SSL veya TLS'yi desteklemediğidir, bu nedenle bu tür şifreleme olmadan SMTP bağlantısı sunan bir sağlayıcı SMTP bulmalısınız.
Kullandığınız sağlayıcıyı ekleyebileceğiniz, benimkini de bulabileceğiniz bir forumda bir konu oluşturuyorum.
2. Adım: Basit E-posta Gönderin
Arduino ile e-posta göndermek için SSL veya TLS olmadan çalışan bir sağlayıcı bulmalısınız, Çözümüm için SendGrid sağlayıcısı ile kullanıyorum.
Bence kullanımı çok çok basit.
Yani sağlayıcıyı ayarlamalısınız
EMailSender emailSend("SENDGRID-API-ANAHTARINIZ", "SENDGRID-PASSWD", "FROM-EMAIL", "smtp.sendgrid.net", 25);
Daha sonra bir mesaj oluşturmalı ve göndermelisiniz
EMailSender::EMAilMessage mesajı; mesaj.subject = "Soggetto"; message.message = "Ciao gel staiio bene.
EMailSender::Response cevap = emailSend.send("[email protected]", mesaj);
Serial.println("Gönderme durumu: ");
Serial.println(resp.status);
Serial.println(resp.code); Serial.println(resp.desc);
3. Adım: Ekleri Yönetmek için bir SD Sepeti Bağlayın
Ekleri göndermek yerine şemadaki gibi bir SD kart bağlamalısınız, bağlantı hakkında daha fazla bilgiye ihtiyacınız varsa bu makaleye bakın "esp8266, esp32 ve Arduino ile SD kart nasıl kullanılır".
4. Adım: Eklerle E-posta Gönder
Ekli e-posta göndermek için bu işlevi destekleyen bir sağlayıcı bulmalısınız, sendgrid sağlayıcım bunu desteklemiyor ve test için kullandığım sağlayıcı GMX'i artık desteklemiyor.
Ancak yeni bir sağlayıcı bulursanız, dosyaları eklemek için bu kodu kullanabilirsiniz.
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 = yanlış; fileDescriptor[0].storageType = EMailSender::EMAIL_STORAGE_TYPE_SD;
EMailSender::Ekler ekler = {1, fileDescriptor};
EMailSender::Response cevap = emailSend.send("[email protected]", mesaj, ekler);
Adım 5: Sonuç
Burada bir esp8266 ve GMail sağlayıcısı ile gönderilen e-posta (GMail'i kullanmak için harici programı etkinleştirmeniz gerekir).
6. Adım: Kitaplık
Kütüphaneyi GitHub'da bulabilirsiniz
Ve Forum'da özellikler sormalı veya hataları bildirmelisiniz
Ek belgeler burada.