今天在学习发送邮件的时候遇到了几个问题,这边一是记录一下 二是给同样遇到问题的同学解惑
1、这个问题我发生的原因是163邮箱 SMTP协议未开启,如果已开启还是报这个错误尝试重新开启一次。开启之后是设置变量也好还是input密码记住不能用163邮箱的登录密码,而是需要使用设置的客户端授权密码。以上针对我出现的这个问题得到了解决。
2、看廖雪峰的简单邮件实例发现自己运行后报554,官方解释就是被屏蔽了。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| from email.mime.text import MIMEText import smtplib from email.header import Header
msg = MIMEText('真的不知道是什么原因', 'plain', 'utf-8') # 输入Email地址和口令: from_addr = 'xxx@163.com' password = '客户端授权密码'
# 输入收件人信息: to_addr = 'xxx@qq.com' # 输入SMTP服务器地址: smtp_server = 'smtp.163.com'
server = smtplib.SMTP(smtp_server, 25) # SMTP协议默认端口是25 server.set_debuglevel(1) # 打印出和SMTP服务器交互的所有信息 server.login(from_addr, password) server.sendmail(from_addr, [to_addr], msg.as_string()) server.quit() print('success')
|
这样的163–>qq 邮箱的(别的我没有试过)是不会成功的,一直报554的错误。我网上找了几个办法好像都行不通。后来我仔细琢磨了一下屏蔽原因会不会是右键内容太过单调而导致的呢。于是我新增了几个属性
1 2 3
| msg['Subject'] = Header('放假通知', 'utf-8') msg['From'] = 'xxx@163.com' msg['To'] = "xxx@qq.com"
|
运行成功。