使用python傳送郵件

wadeson發表於2017-08-04

這裡用到了Python的兩個包來傳送郵件: smtplib 和 email 。
  Python 的 email 模組裡包含了許多實用的郵件格式設定函式,可以用來建立郵件“包裹”。使用的 MIMEText 物件,為底層的 MIME(Multipurpose Internet MailExtensions,多用途網際網路郵件擴充套件型別)協議傳輸建立了一封空郵件,最後通過高層的SMTP 協議傳送出去。 MIMEText 物件 msg 包括收發郵箱地址、郵件正文和主題,Python 通過它就可以建立一封格式正確的郵件。smtplib 模組用來設定伺服器連線的相關資訊。

  要想通過QQ郵箱來傳送郵件,需要開啟163郵箱的設定-賬戶裡SMTP服務,接下來會通過傳送簡訊驗證來獲得授權碼,有了授權碼後就可以在程式碼裡新增了。

以下程式碼都是在python3.6環境下執行:

#coding=utf-8
import smtplib
from email.mime.text import MIMEText

from_mail = "xxxx@163.com"  # 發件人
to_mail = "xxxx@qq.com"    # 收件人
mail_passwd = "xxxx"    # 163郵件的授權碼而不是登入密碼

content = "this is the first python email"
subject = "mail test"
msg = MIMEText(content)
msg['Subject'] = subject
msg['From'] = from_mail
msg['To'] = to_mail
try:
   s = smtplib.SMTP()
   s.connect('smtp.163.com')    # 連線到smtp伺服器
   s.login(from_mail,mail_passwd)    # 登入163郵箱
   s.sendmail(from_mail,to_mail,msg.as_string())   # 使用smtp伺服器向外傳送郵件
   print("OK")
except Exception as e:
   print(e)
finally:
   s.close()
#coding=utf-8
import smtplib, sys
from email.mime.text import MIMEText

content = "this is the first python email"
subject = "mail test"
msg = MIMEText(content)
msg['Subject'] = subject
msg['From'] = sys.argv[1]     # 使用指令碼外帶的引數輸入發件人,收件人以及授權碼
msg['To'] = sys.argv[3]
try:
   s = smtplib.SMTP()
   s.connect('smtp.163.com')
   s.login(sys.argv[1],sys.argv[2])
   s.sendmail(sys.argv[1],sys.argv[3],msg.as_string())
   print("OK")
except Exception as e:
   print(e)
finally:
   s.close()

  

 

相關文章