Python進階(四十六)-Python3實現SMTP傳送郵件詳細教程
分享一下我的偶像大神的人工智慧教程!http://blog.csdn.net/jiangjunshow
也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!
簡介
Python傳送郵件的教程本人在網站搜尋的時候搜尋出來了一大堆,但是都是說了一大堆原理然後就推出了實現程式碼,我測試用給出的程式碼進行傳送郵件時都不成功,後面找了很久才找到原因,這都是沒有一個詳細的環境除錯導致,所以今天特出一個詳細的教程,一步一步從環境除錯到程式碼實現整一個教程,希望對還在苦苦尋找解決方法卻遲遲不能得到有效解決的朋友們一點幫助。
SMTP協議
首先了解SMTP(簡單郵件傳輸協議),郵件傳送代理程式使用SMTP協議來傳送電郵到接收者的郵件伺服器。SMTP協議只能用來傳送郵件,不能用來接收郵件,而大多數的郵件傳送伺服器都是使用SMTP協議。SMTP協議的預設TCP埠號是25。
環境除錯
上面說了是使用SMTP協議傳送的郵件,所以需要先檢視你的發件人郵箱是否有開啟SMTP協議,如沒有,則需要開啟,我測試使用的是163.com的郵箱作為發信人郵箱,在設定中開啟SMTP協議如下圖所示。
測試的前提是你需要開通客戶端授權,開通後會讓你設定密碼,那個密碼要記好,下面的passwd接收的是授權密碼而不是郵箱密碼!否則會出現下圖所示的錯誤提示:
Demo
import smtplib
from email.header import Header
from email.mime.text import MIMEText
# 第三方 SMTP 服務
mail_host = "smtp.163.com" # SMTP伺服器
mail_user = "***" # 使用者名稱
mail_pass = "***" # 授權密碼,非登入密碼
sender = ***@163.com' # 發件人郵箱(最好寫全, 不然會失敗)
receivers = [***@qq.com'] # 接收郵件,可設定為你的QQ郵箱或者其他郵箱
content = '我用Python'
title = '人生苦短' # 郵件主題
def sendEmail():
message = MIMEText(content, 'plain', 'utf-8') # 內容, 格式, 編碼
message['From'] = "{}".format(sender)
message['To'] = ",".join(receivers)
message['Subject'] = title
try:
smtpObj = smtplib.SMTP_SSL(mail_host, 465) # 啟用SSL發信, 埠一般是465
smtpObj.login(mail_user, mail_pass) # 登入驗證
smtpObj.sendmail(sender, receivers, message.as_string()) # 傳送
print("mail has been send successfully.")
except smtplib.SMTPException as e:
print(e)
def send_email2(SMTP_host, from_account, from_passwd, to_account, subject, content):
email_client = smtplib.SMTP(SMTP_host)
email_client.login(from_account, from_passwd)
# create msg
msg = MIMEText(content, 'plain', 'utf-8')
msg['Subject'] = Header(subject, 'utf-8') # subject
msg['From'] = from_account
msg['To'] = to_account
email_client.sendmail(from_account, to_account, msg.as_string())
email_client.quit()
if __name__ == '__main__':
sendEmail()
# receiver = '***'
# send_email2(mail_host, mail_user, mail_pass, receiver, title, content)
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
剛開始測試時,第一次傳送郵件是成功的,但是後面再次測試時卻出現了提示554,根據給出的網址檢視錯誤程式碼
http://help.163.com/09/1224/17/5RAJ4LMH00753VB8.html
554 DT:SPM 傳送的郵件內容包含了未被許可的資訊,或被系統識別為垃圾郵件。請檢查是否有使用者傳送病毒或者垃圾郵件。如下圖所示:
針對該問題,究竟如何解決,會在下一篇博文中進行展開。若看到的朋友有好的解決方法,還請提出,在此感謝。
附 參考資料
http://www.runoob.com/python/python-email.html
附 電子書福利(免積分下載)
《Flask Web開發:基於Python的Web應用開發實戰》
《Learning Python, 5th Edition》
給我偶像的人工智慧教程打call!http://blog.csdn.net/jiangjunshow
相關文章
- python實現基於smtp傳送郵件Python
- Python SMTP傳送郵件Python
- Python 實現郵件傳送功能(進階)Python
- SMTP操作使用詳解並透過python進行smtp郵件傳送示例Python
- 在Python如何使用SMTP傳送郵件Python
- 用Python3傳送郵件詳解Python
- 軟體測試學習教程——Python SMTP傳送郵件Python
- Jmeter——SMTP Sampler傳送郵件JMeter
- python實現傳送郵件Python
- Python3實現自動傳送MySql查詢併傳送郵件PythonMySql
- 配置mail使用SMTP傳送郵件AI
- python實現郵件的傳送Python
- 【python】用SMTP模組傳送帶附件的郵件Python
- 一次性解決python smtp 傳送outlook郵件,163郵件,qq郵件等等.Python
- Python 實現郵件傳送功能(初級)Python
- python傳送郵件Python
- WPForms和 WP Mail SMTP – 最好的WordPress SMTP郵件傳送外掛ORMAI
- oracle 傳送郵件 實現方法Oracle
- SMTP協議解讀以及如何使用SMTP協議傳送電子郵件協議
- 一次郵件傳送協議SMTP問題排查協議
- Linux 上使用 Gmail SMTP 伺服器傳送郵件通知LinuxAI伺服器
- python SMTP郵件服務Python
- Spring Boot實現傳送QQ郵件Spring Boot
- SpringBoot實現傳送電子郵件Spring Boot
- java 如何實現傳送郵件 email?JavaAI
- Springboot+Javamail實現郵件傳送Spring BootJavaAI
- Xamarin Essentials教程傳送郵件EmailAI
- SpringBoot整合Mail傳送郵件&傳送模板郵件Spring BootAI
- Python_smtp 郵件互動Python
- 郵件傳送
- 傳送郵件
- 使用多執行緒實現郵件傳送執行緒
- Java實現網易企業163郵箱傳送郵件Java
- java郵件傳送Java
- Django——郵件傳送Django
- gmail傳送郵件AI
- phpcms傳送郵件PHP
- 郵件的傳送
- Laravel 傳送郵件Laravel