python实现邮件的发送
一、163邮箱设置
进入163邮箱,点击设置中的pop3/smtp/imap
开启smtp服务,如果没有开启,点击设置,手机号验证后勾选开启即可,开启后图如下:
主要用到的就是smtp服务器:smtp.163.com
然后设置客户端授权密码:
记住密码,如果不记得密码在这重新授权。手机号验证即可重新授权。这个密码一会写代码的时候要用
设置成功后,开始写代码
二、代码实现
1 # --*-- coding:utf-8 --*-- 2 3 # 导入所需要的库 4 import smtplib #这个库用于发送邮件 5 from email.mime.text import MIMEText #用于写邮件主题、内容等 6 7 8 # 第一步:设置登陆邮箱数据 9 # smtp服务器 10 smtp_server = 'smtp.163.com' # 刚才在163邮箱中设置后出现的内容 11 # 设置邮箱地址,自己的邮箱,发送者 12 sender = 'SunshineWuya@163.com' 13 # 邮箱密码,163邮箱设置中的客户端授权密码 14 pwd = 'xxxxxxx' 15 16 17 # 第二步:设置发送的内容 18 # 发送内容text 19 text = 'python自动发送邮件' 20 # 将发送的内容转化为邮件的文本内容 21 txt = MIMEText(text) 22 # 设置邮件主题 23 txt['Subject'] = 'test send email' 24 # 设置邮件发送者 25 txt['From'] = sender 26 27 28 # 第三步:发送邮件 29 # 创建SMTP服务器 30 mail_server = smtplib.SMTP(smtp_server,25) 31 # 登陆服务器 32 mail_server.login(sender,pwd) 33 # 发送邮件 34 mail_server.sendmail(sender,['SunshineWuya@163.com'],txt.as_string()) 35 # 第一个参数为发送者,第二个参数为接收者,可以添加多个例如:['SunshineWuya@163.com','xxx@qq.com',] 36 # 第三个参数为发送的内容 37 38 39 # 第四步:退出登陆 40 mail_server.quit()
三、查看结果
在收件箱中查看结果:
查看邮件的内容:
四、将收件人的邮箱地址换成发送者的地址,报554错误
出现554的错误有很多,笔者是收件人To和发件人From没有成对出现造成的,具体问题具体分析,更多解决方法可以百度
解决方法:
将收件人地址添加在To中,再次发送