今天就跟大家聊聊有關怎么在python3中使用smtplib發送郵件,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。
創新互聯專注于永寧網站建設服務及定制,我們擁有豐富的企業做網站經驗。 熱誠為您提供永寧營銷型網站建設,永寧網站制作、永寧網頁設計、永寧網站官網定制、重慶小程序開發公司服務,打造永寧網絡公司原創品牌,更為您提供永寧網站排名全網營銷落地服務。python有哪些常用庫python常用的庫:1.requesuts;2.scrapy;3.pillow;4.twisted;5.numpy;6.matplotlib;7.pygama;8.ipyhton等。
首先,我們需要導入Python3標準庫中的smtplib包和email包來實現郵件的構造和發送。
import smtplib from email.mime.text import MIMEText from email.header import Header
然后,我們需要配置郵件內容:
message = MIMEText('郵件測試', 'plain', 'utf-8') message['From'] = 'qixizhuang@126.com' message['To'] = 'qixizhuang@126.com,751718003@qq.com' subject = 'Python SMTP 郵件測試' message['Subject'] = Header(subject, 'utf-8')
一個完整的郵件需要包括主題(subject)、正文、發件人和收件人:
message = MIMEText('郵件測試', 'plain', 'utf-8')用于設置郵件正文,email.mime.text.MIMEText的三個參數中,第一個是郵件正文,第二個是設置文本格式,第三個則用于設置文本編碼。
message['From'] = 'qixizhuang@126.com'用于設置發件人一欄。
message['To'] ='qixizhuang@126.com,751718003@qq.com'則用于設置收件人一欄。多個收件人之間直接用英文逗號隔開即可。
message['Subject'] = Header(subject, 'utf-8')則用于設置郵件的主題。
此次郵件發送,我們以網易的126郵箱為例,因此我們需要配置一些服務器和賬號信息:
sender = 'qixizhuang@126.com' receivers = ['qixizhuang@126.com', '751718003@qq.com'] mail_host = 'smtp.126.com' mail_user = 'qixizhuang@126.com' mail_pass = '********'
我們需要配置服務器、郵件賬號及密碼、以及發件人和收件人信息。
sender = 'qixizhuang@126.com'是用于配置發件人信息,注意此處的發件人與message[‘from']部分含義不同,message中的信息用于在郵箱中顯示,而此處則是使用sendmail方法時所需要的一個參數。即sender這一變量名并不重要,你甚至可以直接在sendmail中填入郵箱地址的字符串。
receivers = ['qixizhuang@126.com', '751718003@qq.com']則用于配置收件人信息,如果收件人只有一個,那么我們可以直接用一個字符串來賦值;如果收件人有多個的話,那么sendmail需要接收一個列表。跟上一條類似,此處的含義與message[‘to']部分不同。
mail_host, mail_user, mail_pass則是用于設置郵件發送服務器以及郵箱的賬號密碼,跟上邊類似,變量名并不重要,不設置這幾個變量直接在sendmail中輸入字符串也是可以的。
最后,我們使用smtplib來發送郵件。
try: smtpObj = smtplib.SMTP() smtpObj.connect(mail_host, 25) # 25 為 SMTP 端口號 smtpObj.login(mail_user,mail_pass) smtpObj.sendmail(sender, receivers, message.as_string()) print("郵件發送成功!") except smtplib.SMTPException: print("郵件發送失敗!")
smtpObj = smtplib.SMTP(); smtpObj.connect(mail_host, 25);也可以直接改成smtpObj = smtplib.SMTP(mail_host, 25) ,這是為了構建一個SMTP對象。
smtpObj.login(mail_user,mail_pass)用于登錄郵箱。需要注意的是,這里的mail_pass不一定是你的郵箱密碼,很多郵箱服務包括網易郵箱提供了授權碼的功能,如果開啟了此項功能,則此處需要將郵箱密碼改為授權碼。
smtpObj.sendmail(sender, receivers, message.as_string())則是使用SMTP對象的sendmail方法來發送郵件。
到此為止,我們已經實現了一個簡單的郵件發送案例。
然而,在很多場景下,我們需要為郵件添加附件,則此種情況下,我們需要先創建MIMEMultipart()實例,然后構造一個或多個附件,最終使用smtplib來發送。完整示例代碼如下:
import smtplib from email.mime.text import MIMEText from email.mime.multipart import MIMEMultipart from email.header import Header # 配置郵箱賬戶及收發人信息 sender = 'qixizhuang@126.com' receivers = ['qixizhuang@126.com', '751718003@qq.com'] mail_host = 'smtp.126.com' mail_user = 'qixizhuang@126.com' mail_pass = 'password or authorization code here' # 構建MIMEMultipart對象,并在其中添加郵件內容信息 message = MIMEMultipart() message.attach(MIMEText('郵件測試', 'plain', 'utf-8')) message['From'] = 'qixizhuang@126.com' message['To'] = 'qixizhuang@126.com,751718003@qq.com' subject = 'Python SMTP 郵件測試' message['Subject'] = Header(subject, 'utf-8') # 構建附件內容 attr = MIMEText(open('./test.txt', 'r').read()) attr['Content-Type'] = 'application/octet-stream' attr['Content-Disposition'] = 'attachment; filename = ' + 'test.txt' message.attach(attr) # 發送郵件 try: smtpObj = smtplib.SMTP() smtpObj.connect(mail_host, 25) # 25 為 SMTP 端口號 smtpObj.login(mail_user,mail_pass) smtpObj.sendmail(sender, receivers, message.as_string()) print("郵件發送成功!") except smtplib.SMTPException: print("郵件發送失敗!")
看完上述內容,你們對怎么在python3中使用smtplib發送郵件有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注創新互聯行業資訊頻道,感謝大家的支持。
網頁題目:怎么在python3中使用smtplib發送郵件-創新互聯
網頁網址:http://m.newbst.com/article6/dchiog.html
成都網站建設公司_創新互聯,為您提供關鍵詞優化、Google、域名注冊、營銷型網站建設、靜態網站、企業建站
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯