1. 邮箱服务器:
- qq邮箱使用 smtp.qq.com
- 163邮箱使用 smtp.163.com
2. 运行时报错:smtplib.SMTPAuthenticationError: (535, b'Login Fail. Please enter your authorization code to login.
因为这里要的password是第三方使用邮箱时的password,所以应该是授权码而不是密码
3. 需要在邮箱中进行配置,以QQ邮箱为例:
设置-->账户-->开启SMTP服务
发送短信到指定号码,接收授权码
以上就设置完成了,那么如何查看SMTP服务器及端口呢?在QQ邮箱的帮助中心-->热门问题
4. 设置完成,可以写一个简单的发送邮件代码,如下:
SMTP:SimpleMailTransferProtocol 简单邮件传输协议
email模块:用来定义邮件的标题和正文
- Header():用来定义邮件标题
- MIMEText():用来定义邮件正文,参数为html格式的文本。
MIME(Multipurpose Internet Mail Extensions)多用途互联网邮件扩展类型,可用来实现支持HTML格式的邮件,支持所有HTML格式的元素,包括:表格、图片、动画、CSS样式、表单等
1 import smtplib 2 from email.mime.text import MIMEText 3 from email.header import Header 4 import time 5 6 7 # 发送邮箱服务器、用户、密码 8 smtpserver = 'smtp.qq.com' 9 user = '123456789' 10 passwd = 'hfdahfldafj' 11 12 # 发送邮箱、接收邮箱 13 sender = '123456789@qq.com' 14 receiver = '123456@163.com,123456@dingtalk.com' 15 16 # 主题、内容 17 subject = '自动化测试报告 '+ time.strftime('%Y-%m-%d %H_%M_%S') 18 file = open(r'D:zhangyangPycharmProjects est2 estresult2020-03-31 16_22_18.html', 'rb') 19 test_report = file.read() 20 file.close() 21 22 # 构造邮件 23 msg = MIMEText(test_report, 'html', 'utf-8') 24 msg['Subject'] = Header(subject, 'utf-8') 25 26 # 连接邮箱、发送邮件 27 smtp = smtplib.SMTP() 28 smtp.connect(smtpserver) 29 smtp.login(user, passwd) 30 smtp.sendmail(sender, receiver.split(','), msg.as_string()) 31 smtp.quit()
5. OK,收到邮件啦~