您好,登錄后才能下訂單哦!
這期內容當中小編將會給大家帶來有關怎么在Python項目中利用SMTP發送郵件,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
通常使用郵件 API 的郵件發送服務都需要額外的收費。
因此我們再郵件測試發送的時候,可能需要的是 SMTP 郵件發送服務,通常這個服務是所有郵件服務商都會提供的。
要使用 SMTP 郵件發送服務,你需要有下面的信息才可以完成和測試:
SMTP 郵件服務器的地址,端口,登錄用戶名和登錄用戶密碼
發送和接收郵件的地址
郵件的主題和正文
看起來是不是有點復雜,實際上,Python 提供了一個sendmail 的方法,這個方法在 smtplib 庫中。
簡單來說按照下面的步驟來做就可以了。
在 Python 中有一個庫為 MIMEMultipart,我們可以使用這個來構建消息對象。
要做的事情也比較簡單,在定義 MIMEMultipart 對象后,你需要在這個對象中設置是誰發送的,發送給誰,主題是什么。
然后再在這個對象中插入正文,你可以插入 HTML 也可以插入純文本。
為了讓郵件比較美觀,通常我們都會插入 HTML 的文本,很多時候為了插入更多的數據,我們還可能會用到模板。
在定義完成消息對象后,我們就可以發送郵件了。
在發送郵件之前,我們需要初始化 SMTP 對象,通常使用的是 smtplib.SMTP(smtpserver) 方法。
在這個方法中,我們會定義發送郵件服務器的地址和端口。
隨后我們可能會調用一個 starttls 方法,這個方法是希望發送郵件服務器使用的是 TLS 模式。
隨著技術的進步,和安全的考慮,很多郵件發送服務器都要求使用 TLS 模式來進行發送。
然后使用 server.login(email_user, email_passwd) 方法來登錄服務器。
在上面的步驟完成后,我們就等于完成了你的 Python 代碼和郵件服務器的通信了,你的代碼在這個時候會拿到服務器的對象了,并且完成了對象的初始化了。
在這一步完成后就可以調用 sendmail 函數發送郵件。
當郵件發送完成后,不要忘記關閉郵件服務器的連接。
# Connect to the SMTP server server = smtplib.SMTP(smtpserver) server.starttls() server.login(email_user, email_passwd) sending_response = server.sendmail(from_addr, to_addr, message.as_string()) print(sending_response) server.quit()
針對上面的發送服務,請參考下上面提供的偽代碼。
完整的測試代碼請參考 GitHub 上面的:python-tutorials/SendMailSMTP.py at master · cwiki-us-docs/python-tutorials · GitHub
Python 發送郵件的服務還是比較簡單的。
因為郵件發送服務都需要和第三方的郵件服務器進行通信,在這個通信的過程中,最重要的步驟就是先要獲得郵件服務器的鏈接。
通常這個鏈接因為有防火墻,發送用戶名限制,密碼要求等等可能會導致連接獲得失敗而沒有辦法拿到連接服務器的對象。
針對遇到的情況具體問題具體分析就可以了。
遵循的原則步驟就是:
構建消息
獲得服務器連接
發送郵件
關閉服務器連接
上述就是小編為大家分享的怎么在Python項目中利用SMTP發送郵件了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。