使用python编写发送邮件程序出现以下错误:
问题出现在代码中关于信件收发人的格式部分,需要将message中的From和To改成以下的格式:
message['From'] = "xxxxxx@xxxx.com"
message['To'] = "xxxxx@xx.com"
163邮箱的设置比较麻烦,使用matlab编写邮件程序时也要注意相应的问题。
此外注意使用第三方客户端登陆邮箱时需要相应的授权码而不是邮箱用户对应的密码。授权码一般可在相应邮箱的设置中得到。
参考代码
from smtplib import SMTP
from email.header import Header
from email.mime.text import MIMEText
def main():
# 请自行修改下面的邮件发送者和接收者
sender = 'xxxxxxxxxxxx@163.com'
receivers = ['xxxxxxxxxxx@qq.com', 'xxxxxxxxx@163.com']
message = MIMEText('用Python发送邮件的示例代码.', 'plain', 'utf-8')
message['From'] = "xxxxxxxx@163.com"
message['To'] = "xxxxxxxx@qq.com"
message['Subject'] = Header('xxxxxx@qq.com示例代码实验邮件', 'utf-8')
smtper = SMTP('smtp.163.com')
# 请自行修改下面的登录口令
smtper.ehlo()
smtper.starttls()
smtper.login(sender,'secretpass') #此处secretpass输入授权码
smtper.sendmail(sender, receivers, message.as_string())
print('邮件发送完成!')
if __name__ == '__main__':
main()