# MIMEText构造一个文本邮件对象
from email.mime.text import MIMEText
from email.header import Header
import smtplib
class EmailUtil:
#输入QQ账号,QQ授权码,收件人地址
def __init__(self,from_addr,password,to_addr):
# 输入Email地址和口令:
self.from_addr = from_addr #QQ账号
self.password = password # 这里不是真是的qq密码,而是真实的QQ授权码
# 输入收件人地址
self.to_addr = to_addr
# 输入SMTP服务地址: SMTP服务器地址:smtp.qq.com(端口:25)
self.smtp_server = "smtp.qq.com"
def send_email(self,title,content): #第一个参数 titile:邮件标题 content:邮件内容
# 第一个参数是邮件正文
# 传入plain表示纯正文
msg = MIMEText(content, 'plain', 'utf-8')
print("我的msg的内容", msg)
# 设置发件方,收件方,主题
msg['From'] = Header('lhraxxt<%s>' % self.from_addr) # 发件方
msg['To'] = Header('xiaoting<%s>' % self.to_addr) # 收件方
msg['Subject'] = Header('%s'%title, 'utf-8').encode()
server = smtplib.SMTP(self.smtp_server, 25) # SMTP服务器地址,SMTP西医默认端口是25
print("server内容", server)
server.set_debuglevel(1) # 打印交互信息
# 登录SMTP服务器
server.login(self.from_addr, self.password)
# 发送邮件
server.sendmail(self.from_addr, [self.to_addr], msg.as_string())
server.quit()
if __name__ == '__main__':
account = "输入自己的QQ邮箱账号"
password = "自己的授权码"
to_addr = "发送给谁的QQ邮箱账号"
a = EmailUtil(account,password,to_addr)
a.send_email("我是1111标题","你好,世界,我是一个菜鸟,用的是SMTP访问的")
#如何获取QQ授权码:
第一步:点击设置
第二步:点击账户
第三步:开启 POP3/SMTP服务 (如何使用 Foxmail 等软件收发邮件?) 已开启 | 关闭
#报错:535, b'Login Fail. Please enter your authorization code to login. More informatio报错
原因:不可以把授权口令设置为自己的真实QQ密码,应设置为授权码,上面有教如何获取授权码