電子郵件--SMTP協議

SMTP是發送郵件的協議,Python內置對SMTP的支持,可以發送純文本郵件、HTML郵件以及帶附件的郵件。

Python對SMTP支持有smtplibemail兩個模塊,email負責構造郵件,smtplib負責發送郵件。

from email.mime.text import MIMEText
msg = MIMEText('hello, send by Python...', 'plain', 'utf-8')

# 輸入Email地址和口令:
from_addr = input('From: ')
password = input('Password: ')
# 輸入收件人地址:
to_addr = input('To: ')
# 輸入SMTP服務器地址:
smtp_server = input('SMTP server: ')

import smtplib
server = smtplib.SMTP(smtp_server, 25) # SMTP協議默認端口是25
server.set_debuglevel(1)
server.login(from_addr, password)
server.sendmail(from_addr, [to_addr], msg.as_string())
server.quit()

在使用過程中,如果是在安裝有郵箱客戶端的情況下 ,在鍵入源郵箱地址和密碼以及目的郵箱地址,很輕鬆完成代碼的郵件發送測試(我使用的是騰訊企業郵箱客戶端),但是使用qq郵箱同樣是鍵入以上信息,則會報告錯誤 reply: b'535 Error……;raise SMTPAuthenticationError(code, resp)等一些錯誤信息,表示的就是你的郵件沒有發送成功。

沒有發送成功,我勒個擦擦擦,沒有客戶手端這代碼就沒有用的嗎?好像不是,問題總會有解決的辦法。

  1. 發送郵件的郵箱必須在設置頁面開啓stmp服務並設置授權碼

  2. 發送郵箱的密碼不再是你註冊時的密碼,而是授權碼!!!切記!

至於如何設置,見下圖

無標題.png


F開頭的單詞,圖片太大了,不太會設置,就這麼着吧。具體郵箱爲甚麼有這些設置,以及這些都是什麼作用,在進入設置頁面是由鏈接跳轉的,可以查看。

我們需要開啓POP3/SMTP服務,選擇開啓之後我們會得到一個授權碼,將這個授權碼替代上面代碼部分的passwd填入即可成功發送郵件。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章