通過SMTP服務(wù)器使用ESP32發(fā)送電子郵件提醒
電子郵件在全球范圍內(nèi)被用作數(shù)字通信的重要組成部分。電子郵件主要用于官方交流,因為它最方便,成本效益高,記錄保存,覆蓋全球,并且對環(huán)境友好。電子郵件是一種更快的交流方式,只需要穩(wěn)定的網(wǎng)絡(luò)連接。
在這個項目中,我們將使用ESP32板發(fā)送電子郵件(純文本和HTML)。ESP32內(nèi)置的Wi-Fi連接使其能夠通過SMTP服務(wù)器發(fā)送電子郵件與互聯(lián)網(wǎng)通信。這個項目對于不同的應(yīng)用程序有不同的好處,比如傳遞通知、警報和警報。
我們已經(jīng)建立了一些電子郵件提醒項目,看看他們的學(xué)習(xí),
?如何通過ESP8266 NodeMCU發(fā)送SMTP郵件
?基于物聯(lián)網(wǎng)的藥物提醒系統(tǒng)與電子郵件警報
?基于物聯(lián)網(wǎng)的火災(zāi)報警系統(tǒng)使用NodeMCU ESP8266
?基于物聯(lián)網(wǎng)的緊急按鈕使用ESP8266-01
組件的要求
對于這個項目,我們需要很少的要求,包括軟件和硬件
?ESP32微控制器模塊
?Gmail賬戶
?Arduino IDE
配置Google Gmail帳戶
我們使用Gmail作為發(fā)送者的電子郵件帳戶;別擔(dān)心,這是免費的。通過使用Gmail SMTP服務(wù)器,我們將發(fā)送和接收郵件。SMTP服務(wù)器被稱為簡單郵件傳輸協(xié)議,負責(zé)在發(fā)送者和接收者之間發(fā)送和接收郵件。不同的電子郵件提供商,如Gmail,雅虎,Hotmail, Outlook等都有獨特的SMTP地址和設(shè)置。
Gmail SMTP服務(wù)器設(shè)置如下:您可以在互聯(lián)網(wǎng)上檢查其他電子郵件提供商設(shè)置
服務(wù)器:smtp.gmail.com
服務(wù)器端口(TLS): 587
服務(wù)器端口(SSL): 465
需要SMTP TLS/SSL:是
現(xiàn)在,要使用esp32發(fā)送電子郵件,我們需要一個發(fā)件人郵件帳戶,我們使用Gmail帳戶。你也可以使用舊的Gmail帳戶,但不建議這樣做,因為如果在編程過程中出現(xiàn)問題,它會被屏蔽。打開一個新的Gmail帳戶是非常容易的,你所要做的只是遵循基本步驟:
?進入谷歌Gmail頁面。
?單擊“創(chuàng)建新帳戶”。
?填寫所需的詳細信息。所有的細節(jié)都是必須填寫的,因為這些是打開谷歌Gmail帳戶所必需的。
?填寫完詳細信息后,點擊“下一步”。接受所有的條款和條件,并驗證手機號碼,如果它要求它。因此,您的帳戶將被創(chuàng)建。
創(chuàng)建App密碼
要使用ESP32發(fā)送電子郵件,請在您的Gmail帳戶中為不支持兩步驗證的應(yīng)用程序或設(shè)備生成唯一的應(yīng)用程序密碼。在這些設(shè)備上,應(yīng)用程序密碼可以代替常規(guī)密碼訪問Gmail。這些密碼可以從Google帳戶安全設(shè)置中撤銷,并且僅對指定的應(yīng)用程序或設(shè)備有效。
首先,創(chuàng)建應(yīng)用程序密碼的必要條件是對您的帳戶啟用兩步驗證。
?登錄到你的谷歌帳戶,去管理谷歌帳戶設(shè)置。
?進入安全設(shè)置,向下滾動直到看到“兩步驗證”
?通過添加和驗證手機號碼實現(xiàn)兩步驗證
?啟用后,每當(dāng)你試圖在任何其他設(shè)備上登錄該賬戶時,總是會提示你輸入智能手機上發(fā)送的驗證碼。
創(chuàng)建App密碼
?現(xiàn)在,進入搜索欄,搜索“應(yīng)用程序密碼”。點擊應(yīng)用程序密碼選項。
?在這里,你會看到一個窗口,在那里你可以為你想要與谷歌帳戶一起使用的應(yīng)用程序創(chuàng)建一個應(yīng)用程序密碼。在選定的字段中,選擇應(yīng)用程序作為郵件類型,選擇設(shè)備作為其他類型。
?選擇字段之后,在提示下一個字段時給出一個名稱,最后單擊Generate。您將看到將生成一個App密碼,并保存代碼以供以后使用,我們將在編程中使用該密碼來提供Gmail帳戶對ESP32的訪問權(quán)限。
最后,您會看到添加了一個設(shè)備。
基于Arduino IDE的ESP32編程
您創(chuàng)建的程序可以包括各種功能,例如自定義電子郵件消息內(nèi)容,指定收件人的電子郵件地址,以及在電子郵件中包含消息或其他數(shù)據(jù)。
?搭建ESP32微控制器板用Arduino IDE軟件開發(fā)環(huán)境,包括必要的Wi-Fi和電子郵件通信庫。
?在ESP32上配置Wi-Fi網(wǎng)絡(luò),使ESP32能夠連接到internet。
?設(shè)置SMTP服務(wù)器來處理電子郵件通信,并提供所需的服務(wù)器憑據(jù),如服務(wù)器地址、端口號、登錄憑據(jù)和安全設(shè)置。
?使用Arduino IDE編寫程序,使用ESP32的Wi-Fi和電子郵件庫建立到SMTP服務(wù)器的連接并發(fā)送電子郵件。
ESP郵件客戶端庫設(shè)置
使用ESP郵件客戶端庫與SMTP服務(wù)器一起工作是必要的。那么,讓我們來學(xué)習(xí)安裝庫。
通過Sketch進入Arduino的庫管理器> include libraries> manage libraries。
搜索“ESP郵件客戶端”,你會發(fā)現(xiàn)第一個名為“ESP郵件客戶端由Mobitz”的庫。
安裝它,就是這樣。
使用ESP32發(fā)送HTML和純文本
代碼需要所有必要的庫才能成功執(zhí)行。庫僅包括ESP郵件客戶端和wifi。使用ESP32發(fā)送郵件需要互聯(lián)網(wǎng)連接,因此我們使用圖書館WIFI.h。我們還包含了一些變量和對象來存儲數(shù)據(jù),以便進一步編程。
WIFI.h庫將ESP32連接到Arduino IDE中的Wi-Fi網(wǎng)絡(luò)。您需要在創(chuàng)建的名為WIFI_SSID和WIFI_Password的變量中提供您想要連接的網(wǎng)絡(luò)的SSID和密碼。您需要用您的網(wǎng)絡(luò)憑據(jù)替換這些憑據(jù)。
然后,我們必須提供一個SMTP服務(wù)器地址和端口變量來存儲連接到服務(wù)器的值。由于我們已經(jīng)使用了谷歌Gmail SMTP協(xié)議,所以我們必須提供一個Gmail SMTP地址和端口。選擇Gmail作為SMTP服務(wù)器是可選的,您也可以選擇其他郵件提供商的選項。
此外,我們?yōu)榘l(fā)件人的電子郵件地址和密碼以及收件人的電子郵件地址和名稱定義了變量,以存儲數(shù)據(jù)值。收件人的名字是可選的,如果你想,你可以定義,否則保持原樣。
在Setup函數(shù)()中,我們初始化波特率為115200的串行端口。然后我們開始命令WIFI .begin()通過提供正確的SSID和密碼來初始化WIFI連接到網(wǎng)絡(luò)。
然后,我們通過命令WL_CONNECTED監(jiān)視連接,并以200毫秒的延遲將周期作為進度指示器打印到串行監(jiān)視器。最后,成功連接后,IP地址將在串行監(jiān)視器上打印。最后,我們啟動由類“SMTPsession”創(chuàng)建的對象“smtp”的函數(shù)。
我們通過創(chuàng)建一個名為“ESP_Mail_Session”的類的“Session”對象來配置會話,并為之前定義為變量的類成員提供所有細節(jié)。
現(xiàn)在,在上面的代碼行中,我們可以提供將要發(fā)送的電子郵件消息的詳細信息。它包括發(fā)件人的姓名、電子郵件和作為郵件主題的消息主題。我們已經(jīng)定義了其中一些變量,但您需要根據(jù)您的通信數(shù)據(jù)更改它們。其他主題和發(fā)件人名稱可以根據(jù)您的選擇在這里直接定義。
HTML消息體
以上代碼行定義了HTML文本主體。對于標題,我們指定‘ Hello Semicon ’。下一行將包含“從ESP32生成的郵件”。此消息顯示給發(fā)件人將是黑色的,因為我們已經(jīng)指定了十六進制代碼。您可以根據(jù)自己的喜好添加自己的HTML文本和設(shè)置。
簡體短信正文
上面的代碼發(fā)送純文本,但在此之前,您必須注釋掉完整的HTML文本主體。
下面的代碼行檢查并啟動SMTP會話并發(fā)送郵件。
在最后,您將找到完整的代碼。
工作
我們要做的主要任務(wù)是通過Gmail SMTP服務(wù)器發(fā)送電子郵件。必要的更改不應(yīng)該忘記在代碼中,如收件人和發(fā)件人的Gmail地址,也注釋掉任何一個在HTML正文或純文本正文內(nèi)的代碼。
根據(jù)您的需求配置消息主體,例如更改主題、發(fā)送者名稱和消息。
此外,不要忘記提供您的WiFi憑據(jù),以成功地將電路板連接到互聯(lián)網(wǎng)。
發(fā)件人密碼是應(yīng)用程序密碼(之前創(chuàng)建的),這是訪問發(fā)件人Gmail帳戶的唯一密鑰。所以復(fù)制粘貼的時候要小心。
下一步工作步驟:
在Arduino IDE中打開代碼草圖,通過micro-USB連接線連接ESP32模塊。
選擇板為ESP32 Dev Module(僅當(dāng)您已經(jīng)安裝了ESP32板管理器時有效)
選擇COM端口
按照上面已經(jīng)討論過的步驟上傳代碼并嘗試一下。打開串行監(jiān)視器,設(shè)置正確的波特率,等待,直到它顯示一個IP地址。
在串行監(jiān)視器上,會有你得到的每一個信息,比如郵件是否發(fā)送,Gmail授權(quán)是否被訪問。
最后,如果一切正常,將顯示一條成功發(fā)送的消息。檢查您的電子郵件ID上的郵件。當(dāng)你啟動設(shè)備時,會發(fā)送一封電子郵件。
讓我們看看我們的郵件看起來有多真實:
本文編譯自iotdesignpro