首先自己參考教程寫的沒有成功:
import smtplib
import email.mime.multipart
import email.mime.text
msg=email.mime.multipart.MIMEMultipart()
msg['from']='2764896xx@qq.com'
msg['to']='10750490xx@qq.com'
msg['subject']='test'
content="just try"
txt=email.mime.text.MIMEText(content)
msg.attach(txt)
smtp=smtplib
smtp=smtplib.SMTP()
smtp.connect('smtp.qq.com','465')
smtp.login('2764896xx@qq.com','password')//password是在開啟qq的smtp服務(wù)器時給的口令
smtp.sendmail('2764896xx@qq.com','10750490xx@qq.com',str(msg))
smtp.quit()
然后借用http://www.reibang.com/p/0f8c5e4e7054哥們的寫法成功了:
import smtplib
from email.mime.text import MIMEText
from email.utils import formataddr
my_sender='2764896xx@qq.com' # 發(fā)件人郵箱賬號
my_pass = 'password' # 發(fā)件人郵箱密碼(當(dāng)時申請smtp給的口令)
my_user='10750490xx@qq.com' # 收件人郵箱賬號囚灼,我這邊發(fā)送給自己
def mail():
ret=True
try:
msg=MIMEText('哈哈哈哈哈沛厨,王xx叠国,收到郵件請回復(fù)蜡峰!','plain','utf-8')
msg['From']=formataddr(["發(fā)件人昵稱",my_sender]) # 括號里的對應(yīng)發(fā)件人郵箱昵稱、發(fā)件人郵箱賬號
msg['To']=formataddr(["收件人昵稱",my_user]) # 括號里的對應(yīng)收件人郵箱昵稱、收件人郵箱賬號
msg['Subject']="郵件主題-測試" # 郵件的主題,也可以說是標(biāo)題
server=smtplib.SMTP_SSL("smtp.qq.com", 465) # 發(fā)件人郵箱中的SMTP服務(wù)器肌似,端口是465
server.login(my_sender, my_pass) # 括號中對應(yīng)的是發(fā)件人郵箱賬號、郵箱密碼
server.sendmail(my_sender,[my_user,],msg.as_string()) # 括號中對應(yīng)的是發(fā)件人郵箱賬號诉瓦、收件人郵箱賬號川队、發(fā)送郵件
server.quit()# 關(guān)閉連接
except Exception:# 如果 try 中的語句沒有執(zhí)行力细,則會執(zhí)行下面的 ret=False
ret=False
return ret
ret=mail()
if ret:
print("郵件發(fā)送成功")
else:
print("郵件發(fā)送失敗")
后面嘗試了下,把1中的
smtp=smtplib.SMTP()
改為
smtp=smtplib.SMTP_SSL()
則郵件發(fā)送成功固额,具體原因還不知道眠蚂。
注意:不能將文件名叫做email.py,否則會報 ImportError: No module named mime.text
因?yàn)樵诖a開頭使用了 from email.mime.text import MIMEText
如果文件名叫email.py,呵呵,你懂得对雪。河狐。。