欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python使用smtplib模塊發(fā)送電子郵件的流程詳解

 更新時間:2016年06月27日 14:50:19   作者:j_hao104  
Python中自帶的smtplib模塊可以進行基于SMTP協(xié)議的郵件操作,這里我們便總結了Python使用smtplib模塊發(fā)送電子郵件的流程詳解,并對一些常見的問題給出了解決方法:

1、登錄SMTP服務器
首先使用網上的方法(這里使用163郵箱,smtp.163.com是smtp服務器地址,25為端口號):

import smtplib
server = smtplib.SMTP('smtp.163.com', 25)
server.login('j_hao104@163.com', 'password')
Traceback (most recent call last):
 File "C:/python/t.py", line 192, in <module>
  server.login('j_hao104@163.com', 'password')
 File "C:\Python27\lib\smtplib.py", line 622, in login
  raise SMTPAuthenticationError(code, resp)
smtplib.SMTPAuthenticationError: (535, 'Error: authentication failed')

發(fā)現(xiàn)返回: 

smtplib.SMTPAuthenticationError: (535, 'Error: authentication failed')

,提示驗證失敗。
有說python不支持SMTP服務,或是服務沒開啟之類的。但是我想起上次我用foxmail登錄我的163郵箱的時候,郵箱密碼都輸對了還是提示我密碼錯誤,最后的解決辦法是:像QQ和163郵箱現(xiàn)在都有個客戶端密碼,用第三方登錄時需用客戶端密碼登錄才行,python也是如此,因此去設置好客戶端密碼,再用客戶端密碼登錄。

2016627144753064.png (700×421)

import smtplib
server = smtplib.SMTP('smtp.163.com', 25)
server.login('j_hao104@163.com', 'clientPassword')

    此時便返回登錄成功提示:

(235, 'Authentication successful')

2、發(fā)送郵件

首先使用網上給出的代碼:

import smtplib
from email.mime.text import MIMEText
server = smtplib.SMTP('smtp.163.com', 25)
server.login('j_hao104@163.com', 'clientPassword')
msg = MIMEText('hello, send by Python...', 'plain', 'utf-8')
server.sendmail('j_hao104@163.com', ['946150454@qq.com'], msg.as_string())

構造MIMEText對象時,第一個參數是郵件正文,第二個參數是MIME的subtype,最后個是編碼方式。
sendmail是發(fā)郵件方法,第一個參數是發(fā)件郵箱,第二個參數是收件人郵箱,是一個列表,代表可以同時發(fā)給多個人,as_string是把MIMEText對象變成str。
但是執(zhí)行結果并不能得到網上說的結果:

2016627144839301.jpg (350×162)

而是:

Traceback (most recent call last):
 File "C:/python/t.py", line 195, in <module>
  server.sendmail('j_hao104@163.com', ['946150454@qq.com'], msg.as_string())
 File "C:\Python27\lib\smtplib.py", line 746, in sendmail
  raise SMTPDataError(code, resp)
smtplib.SMTPDataError: (554, 'DT:SPM 163 smtp11,D8CowEDpDkE427JW_wQIAA--.4996S2 1454562105,please see http://mail.163.com/help/help_spam_16.htm?ip=171.221.144.51&hostid=smtp11&time=1454562105')

網上一查才知道:smtplib.SMTPDataError: (554, 'DT:SPM 163 smtp11……的錯誤是因為信封發(fā)件人和信頭發(fā)件人不匹配。可以看出看出圖片中并沒有發(fā)件人和主題,所以需要對代碼做如下修改:

import smtplib
from email.header import Header
from email.mime.text import MIMEText
server = smtplib.SMTP('smtp.163.com', 25)
server.login('j_hao104@163.com', 'clientPassword')
msg = MIMEText('hello, send by Python...', 'plain', 'utf-8')
msg['From'] = 'j_hao104@163.com <j_hao104@163.com>'
msg['Subject'] = Header(u'text', 'utf8').encode()
msg['To'] = u'飛輪海 <jinghao5849312@qq.com>'
server.sendmail('j_hao104@163.com', ['946150454@qq.com'], msg.as_string())

這樣就能成功發(fā)出郵件啦
msg里的具體信息可以用一般發(fā)郵件方式發(fā)封郵件測試下

2016627144903688.png (424×155)

3、參考示例

import smtplib
from email.mime.text import MIMEText

to_list = ['123@123.com', '456@456.com']
server_host = 'smtp.163.com'

username = '你的郵箱賬號'
password = '你的郵箱密碼'


def send(to_list, sub, content):
  '''
  :param to_list: 收件人郵箱
  :param sub: 郵件標題
  :param content: 內容
  '''
  me = "manager" + "<" + username + ">" 
  # _subtype 可以設為html,默認是plain
  msg = MIMEText(content, _subtype='html')
  msg['Subject'] = sub
  msg['From'] = me
  msg['To'] = ';'.join(to_list)
  try:
    server = smtplib.SMTP()
    server.connect(server_host)
    server.login(username, password)
    server.sendmail(me, to_list, msg.as_string())
    server.close()
  except Exception as e:
    print str(e)

if __name__ == '__main__':
  send(to_list, "這個是一個郵件", "<h1>Hello, It's test email.</h1>")

相關文章

  • 基于Python實現(xiàn)帕累托圖的示例詳解

    基于Python實現(xiàn)帕累托圖的示例詳解

    帕累托圖是一種特殊的直方圖, 在項目管理知識體系中屬于質量管理的工具。本文為大家整理了Python實現(xiàn)帕累托圖的方法,需要的可以參考一下
    2023-03-03
  • python實現(xiàn)字符串加密成純數字

    python實現(xiàn)字符串加密成純數字

    這篇文章主要為大家詳細介紹了python實現(xiàn)字符串加密成純數字,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-03-03
  • python數據抓取分析的示例代碼(python + mongodb)

    python數據抓取分析的示例代碼(python + mongodb)

    本篇文章主要介紹了python數據抓取分析的示例代碼(python + mongodb),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-12-12
  • Python smtplib實現(xiàn)發(fā)送郵件功能

    Python smtplib實現(xiàn)發(fā)送郵件功能

    這篇文章主要為大家詳細介紹了Python smtplib實現(xiàn)發(fā)送郵件功能,包含文本、附件、圖片等,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-05-05
  • python實現(xiàn)大文件分割與合并

    python實現(xiàn)大文件分割與合并

    這篇文章主要為大家詳細介紹了python實現(xiàn)大文件分割與合并,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-07-07
  • python opencv 二值化 計算白色像素點的實例

    python opencv 二值化 計算白色像素點的實例

    今天小編就為大家分享一篇python opencv 二值化 計算白色像素點的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-07-07
  • Python 根據日志級別打印不同顏色的日志的方法示例

    Python 根據日志級別打印不同顏色的日志的方法示例

    這篇文章主要介紹了Python 根據日志級別打印不同顏色的日志的方法示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-08-08
  • python基礎之Numpy庫中array用法總結

    python基礎之Numpy庫中array用法總結

    NumPy(Numerical Python的縮寫)是一個開源的Python科學計算庫,使用NumPy就可以很自然地使用數組和矩陣,這篇文章主要給大家介紹了關于python基礎之Numpy庫中array用法的相關資料,需要的朋友可以參考下
    2021-08-08
  • 使用Python的OpenCV模塊識別滑動驗證碼的缺口(推薦)

    使用Python的OpenCV模塊識別滑動驗證碼的缺口(推薦)

    這篇文章主要介紹了使用Python的OpenCV模塊識別滑動驗證碼的缺口,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-05-05
  • Python符號計算之實現(xiàn)函數極限的方法

    Python符號計算之實現(xiàn)函數極限的方法

    這篇文章主要介紹了Python符號計算之實現(xiàn)函數極限的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-07-07

最新評論