【Stmplib】Python正確模擬傳送QQ郵件
以前也試過模擬發Email,但好像都忘了,於是按照菜鳥教程重新試了一下:
import smtplib
from email.mime.text import MIMEText
from email.header import Header
sender = 'from@runoob.com'
receivers = ['???@qq.com'] # 接收郵件,可設定為你的QQ郵箱或者其他郵箱
# 三個引數:第一個為文字內容,第二個 plain 設定文字格式,第三個 utf-8 設定編碼
message = MIMEText('Python 郵件傳送測試...', 'plain', 'utf-8')
message['From'] = Header("菜鳥教程", 'utf-8') # 傳送者
message['To'] = Header("測試", 'utf-8') # 接收者
subject = 'Python SMTP 郵件測試'
message['Subject'] = Header(subject, 'utf-8')
try:
smtpObj = smtplib.SMTP('localhost')
smtpObj.sendmail(sender, receivers, message.as_string())
print "郵件傳送成功"
except smtplib.SMTPException:
print "Error: 無法傳送郵件"
結果瘋狂報錯,說是什麼ConnectionRefusedError: [WinError 10061] 由於目標計算機積極拒絕,無法連線.
這個問題查搜尋引擎發現都是說什麼網路連線問題(比如防火牆、區域網等等),但其實不是關鍵問題,主要是這個程式碼有點問題。
修正後的程式碼是這樣的:
import smtplib
from email.mime.text import MIMEText
from email.header import Header
f = open('./config.txt', 'r')
# \n換行符需要刪掉
sender = f.readline()[:-1]
receiver = f.readline()[:-1]
password = f.readline()[:-1]
f.close()
receivers = [receiver]
message = MIMEText('Python騷擾郵件', 'plain', 'utf-8')
message['From'] = Header("Python騷擾郵件", 'utf-8')
message['To'] = Header("Python騷擾郵件", 'utf-8')
subject = 'Python-SMTP郵件測試'
message['Subject'] = Header(subject, 'utf-8')
try:
smtpObj = smtplib.SMTP_SSL("smtp.qq.com", 465)
smtpObj.connect("smtp.qq.com", 465)
smtpObj.login(sender, password)
smtpObj.sendmail(sender, receivers, message.as_string())
print("郵件傳送成功")
except smtplib.SMTPException:
print("Error: 無法傳送郵件")
做幾點必要說明:
- 個人資訊存在檔案裡是比較妥善的做法,通過讀檔案來獲取資訊
- 讀的一行檔案帶有換行符,需要去掉末尾
\n
- 發QQ郵箱需要開啟SMTP服務並獲取授權碼
- 注意異常處理,其實這裡的異常處理比較暴力,真的出錯也不便於排錯
相關文章
- golang傳送郵件(qq郵箱)Golang
- spring boot配置QQ郵箱傳送郵件Spring Boot
- python傳送郵件Python
- 電子郵件協議及GO傳送QQ郵件協議Go
- Spring Boot實現傳送QQ郵件Spring Boot
- php 傳送郵件(以QQ為例)PHP
- Linux Centos7傳送QQ郵件LinuxCentOS
- 一次性解決python smtp 傳送outlook郵件,163郵件,qq郵件等等.Python
- Python SMTP傳送郵件Python
- JavaMailSender怎麼傳送163和qq郵件JavaAI
- JavaMail:java使用QQ郵箱傳送郵件簡單版。JavaAI
- python實現傳送郵件Python
- 【python】用SMTP模組傳送帶附件的郵件Python
- SpringBoot整合Mail傳送郵件&傳送模板郵件Spring BootAI
- 郵件傳送
- 傳送郵件
- python實現郵件的傳送Python
- java郵件傳送Java
- Django——郵件傳送Django
- gmail傳送郵件AI
- phpcms傳送郵件PHP
- 郵件的傳送
- Laravel 傳送郵件Laravel
- thinkjs 傳送郵件JS
- SpringBoot傳送郵件Spring Boot
- SpringBoot郵件傳送Spring Boot
- Laravel傳送郵件Laravel
- PHP傳送郵件PHP
- nodejs 傳送郵件NodeJS
- Python 傳送帶有附件的郵件Python
- 在Python如何使用SMTP傳送郵件Python
- Python 傳送郵件的幾種方式Python
- 結合Spring傳送郵件的四種正確姿勢,你知道幾種?Spring
- Java Mail 郵件傳送(二):簡單封裝的郵件傳送JavaAI封裝
- 用Python3傳送郵件詳解Python
- 使用Python批次傳送個性化郵件Python
- Python 實現郵件傳送功能(進階)Python
- Python 實現郵件傳送功能(初級)Python