日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

发送邮件_使用 Python 发送电子邮件

發布時間:2023/12/19 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 发送邮件_使用 Python 发送电子邮件 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在實際運用中,我們可能需要通過電子郵件告訴我們 Python 運行的結果的是否與預期的一致。現在我們就來看一下,怎么通過 Python 發送郵件。

這個示例中我們需要用到的第三方庫有:

?smtplib?email.mime.text 里面的 MIMEText?email.header 里面的 Header

* 如果沒有對應的庫,需要使用 pip install 進行安裝

代碼

import smtplibfrom email.mime.text import MIMETextfrom email.header import Headersubject = "Python E-Mail Test"sender = ""to_receiver = [""]cc_receiver = [""]receiver = to_receiver + cc_receivermessage = MIMEText("Hi,\n\nThis is Python Challenge test email, please ignore it. \n\nRegards,\nAaron" , "plain", "UTF-8")message["Subject"] = Header(subject, "UTF-8")message["From"] = sendermessage['To'] = ";".join(to_receiver)message["Cc"] = ";".join(cc_receiver)try: smtpObj = smtplib.SMTP("") smtpObj.sendmail(sender, receiver, message.as_string()) print("Email sent successfully")except smtplib.SMTPException: print("Error")

代碼說明

使用?import?和?from ... import ...?導入第三方庫

import smtplibfrom email.mime.text import MIMETextfrom email.header import Header

通過變量指定郵件主題,收件人等信息,其中 subject 是郵件的主題;sender 是發件人的地址;to_ receiver 是收件人的郵件地址,是一個列表,你可以在這個列表中添加多個收件人的地址;cc_receiver 是抄送的郵件地址,也是一個列表,在這個列表中也可以添加多個抄送地址;將 to_ receiver 和 cc_receiver 合并,就是所有收件人的地址。

subject = "Python E-Mail Test"sender = ""to_receiver = [""]cc_receiver = [""]receiver = to_receiver + cc_receiver

通過 MIMEText 編寫郵件正文,正文的內容有三部分,第一部分是你要發送的郵件內容,可以使用轉義字符(如,\n, \t 等)改變內容的格式;然后指定郵件的文本格式,我們使用的是?plain(純文本),你也可以將 plain 換成 html,使用 html 格式;最后面是內容的編碼,我使用的是?UTF-8;最后將這些內容賦值給一個變量 message,這個就使我們我們要發送的內容。

message = MIMEText("Hi,\n\nThis is Python Challenge test email, please ignore it. \n\nRegards,\nAaron" , "plain", "UTF-8")

將前面定義的郵件主題變量 subject 通過?hearder?添加到郵件內容中,然后在郵件的 from 欄中添加 sender 的郵件地址;將 to_receiver 變量中的地址添加到郵件的 to 欄中,如果 to_receiver 中有多個地址,則使用?隔開;將 cc_receiver 中的郵件地址,添加到郵件的 cc 欄中,如果 cc_receiver 有多個地址,則使用?隔開。

message["Subject"] = Header(subject, "UTF-8")message["From"] = sendermessage['To'] = ";".join(to_receiver)message["Cc"] = ";".join(cc_receiver)

try ... except ...?是 Python 中的異常處理,可以在出錯的情況下,跳過錯誤,繼續運行,在本示例中,這是代碼的最后一部分,不管出沒出錯,這段代碼運行完都會結束,所有我們這里的異常處理,就只有 print 一個 “Error” 信息。

使用?smtplib.SMTP?指定發送郵件使用的 SMTP 服務器地址,并將賦值給一個變量 smtp;然后使用?sendmail?發送電子郵件,并指定發件人 sender,所有收件人 receiver,以及使用 message.as_string() 將 message 的 MIMEText 對象轉換成 str;使用 smtp.quit() 結束 SMTP 會話,并 print 一個信息,告訴你郵件發送已經完成。

try: smtp = smtplib.SMTP("") smtp.sendmail(sender, receiver, message.as_string()) print("Email sent successfully")except smtplib.SMTPException: print("Error")

代碼運行結果:

打開收件人郵件,驗證是否收到了郵件

補充

在某些情況下,我們沒有自己的 SMTP 服務器,只能使用第三方提供的 SMTP 服務器,如,qq 郵箱。

那么我們需要添加一些參數來指定用戶名密碼,如:

mail_user = "xxxxxxxxxx@qq.com" # 用戶名mail_password = "xxxxxxxxxxx" # 口令

* 在 qq 郵箱中,如果你需要使用 SMTP 功能,你需要到設置里面開啟 SMTP 功能,并設置一個授權碼,使用這個授權碼代替 qq 郵箱密碼。

然后再發送代碼的部分補充上 SMTP login:

try: smtpObj = smtplib.SMTP_SSL("", 465) smtpObj.login(mail_user, mail_password) smtpObj.sendmail(sender, receivers, message.as_string()) print("Email sent successfully")except smtplib.SMTPException: print("Error")

* qq 郵箱需要使用 ssl, 所以這里使用的 SMTP_SSL,而不是 SMTP,并且端口使用的是 465,而不是默認的 25(如果使用默認端口,端口可以忽略不寫)。

☆ END ☆

總結

以上是生活随笔為你收集整理的发送邮件_使用 Python 发送电子邮件的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。