python實現郵件的傳送

Tynam.Yang發表於2018-04-09

一、163郵箱設定

進入163郵箱,點選設定中的pop3/smtp/imap

開啟smtp服務,如果沒有開啟,點選設定,手機號驗證後勾選開啟即可,開啟後圖如下:

主要用到的就是smtp伺服器:smtp.163.com

然後設定客戶端授權密碼:

記住密碼,如果不記得密碼在這重新授權。手機號驗證即可重新授權。這個密碼一會寫程式碼的時候要用

設定成功後,開始寫程式碼

二、程式碼實現

 1 # --*-- coding:utf-8 --*--
 2 
 3 # 匯入所需要的庫
 4 import smtplib #這個庫用於傳送郵件
 5 from email.mime.text import MIMEText #用於寫郵件主題、內容等
 6 
 7 
 8 # 第一步:設定登陸郵箱資料
 9 # smtp伺服器
10 smtp_server = 'smtp.163.com' # 剛才在163郵箱中設定後出現的內容
11 # 設定郵箱地址,自己的郵箱,傳送者
12 sender = 'SunshineWuya@163.com'
13 # 郵箱密碼,163郵箱設定中的客戶端授權密碼
14 pwd = 'xxxxxxx'
15 
16 
17 # 第二步:設定傳送的內容
18 # 傳送內容text
19 text = 'python自動傳送郵件'
20 # 將傳送的內容轉化為郵件的文字內容
21 txt = MIMEText(text)
22 # 設定郵件主題
23 txt['Subject'] = 'test send email'
24 # 設定郵件傳送者
25 txt['From'] = sender
26 
27 
28 # 第三步:傳送郵件
29 # 建立SMTP伺服器
30 mail_server = smtplib.SMTP(smtp_server,25)
31 # 登陸伺服器
32 mail_server.login(sender,pwd)
33 # 傳送郵件
34 mail_server.sendmail(sender,['SunshineWuya@163.com'],txt.as_string())
35 # 第一個引數為傳送者,第二個引數為接收者,可以新增多個例如:['SunshineWuya@163.com','xxx@qq.com',]
36 # 第三個引數為傳送的內容
37 
38 
39 # 第四步:退出登陸
40 mail_server.quit()

三、檢視結果

在收件箱中檢視結果:

 

檢視郵件的內容:

 

四、將收件人的郵箱地址換成傳送者的地址,報554錯誤

   出現554的錯誤有很多,筆者是收件人To和發件人From沒有成對出現造成的,具體問題具體分析,更多解決方法可以百度

  解決方法:

  將收件人地址新增在To中,再次傳送

  

相關文章