日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

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

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

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

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

?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 是發(fā)件人的地址;to_ receiver 是收件人的郵件地址,是一個列表,你可以在這個列表中添加多個收件人的地址;cc_receiver 是抄送的郵件地址,也是一個列表,在這個列表中也可以添加多個抄送地址;將 to_ receiver 和 cc_receiver 合并,就是所有收件人的地址。

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

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

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 中的異常處理,可以在出錯的情況下,跳過錯誤,繼續(xù)運行,在本示例中,這是代碼的最后一部分,不管出沒出錯,這段代碼運行完都會結束,所有我們這里的異常處理,就只有 print 一個 “Error” 信息。

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

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

代碼運行結果:

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

補充

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

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

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

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

然后再發(fā)送代碼的部分補充上 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 发送电子邮件的全部內容,希望文章能夠幫你解決所遇到的問題。

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