python3:利用smtplib库和smtp.qq.com邮件服务器发送邮件详解编程语言

python3:利用smtplib库和smtp.qq.com邮件服务器发送邮件

使用qq的邮件服务器需要注意的两个地方主要是:

1.协议问题 使用465端口 SSL 协议

2.口令问题 出现SMTPAuthenticationError 主要的原因就是口令和帐号信息不对,这里我们使用qq服务器发送 需要先到邮箱里设置独立密码(必须), 然后开启

   SMTP/POP3服务。然后用qq手机安全中心扫一扫会给一个授权码, 在代码中要填写的密码是这个授权码, 而不是邮箱密码!

示例代码:

# python3 
# author:lizm 
# date:2018-07-18 10:00:00  
# -*- coding: utf-8 -*- 
''' 
description:登录qq邮箱发送邮件 
''' 
from smtplib import SMTP_SSL 
from email.header import Header 
from email.mime.text import MIMEText 
#邮件定义 
mail_info = { 
"from": "[email protected]", 
"to": "[email protected]", 
"hostname": "smtp.qq.com", 
"username": "[email protected]", 
"password": "*******", 
"mail_subject": "test", 
"mail_text": "hello, this is a test email, sended by py", 
"mail_encoding": "utf-8" 
} 
if __name__ == '__main__': 
#使用SMTP_SSL就是默认使用465端口 
smtp = SMTP_SSL(mail_info["hostname"]) 
#set_debuglevel()是用来调试的。参数值为1表示开启调试模式,参数值为0关闭调试模式 
smtp.set_debuglevel(1) 
#连接服务器 
smtp.ehlo(mail_info["hostname"]) 
#邮箱登录 
smtp.login(mail_info["username"], mail_info["password"]) 
#填写正文内容 
msg = MIMEText(mail_info["mail_text"], "plain", mail_info["mail_encoding"]) 
#填写邮件标题 
msg["Subject"] = Header(mail_info["mail_subject"], mail_info["mail_encoding"]) 
#发送者邮箱地址 
msg["from"] = mail_info["from"] 
#接收者邮件地址 
msg["to"] = mail_info["to"] 
#发送邮件 
smtp.sendmail(mail_info["from"], mail_info["to"], msg.as_string()) 
#退出 
smtp.quit()

 

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/16748.html

(0)
上一篇 2021年7月19日
下一篇 2021年7月19日

相关推荐

发表回复

登录后才能评论