求助大佬们,菜鸟初学 python,最近想试下发邮件,就找了相关的教程,代码如下:
import smtplib import email.mime.multipart import email.mime.text
msg = email.mime.multipart.MIMEMultipart() msg['From'] = '[email protected]' msg['To'] = '[email protected]' msg['Subject'] = '最新订阅' content = """ 您好, 这是一封自动发送的邮件, 最新订阅链接为:
"""
text = email.mime.text.MIMEText(content) smtp = smtplib.SMTP() smtp.connect('smtp.qq.com',465) smtp.login('[email protected]','xxxxxxxx') # 密码我放的 QQ 邮箱授权码 smtp.sendmail('[email protected]','[email protected]',str(msg)) smtp.quit()
报错信息: Traceback (most recent call last): File "F:…………/emailmodule.py", line 16, in <module> smtp = smtplib.SMTP() File "D:\Python37\lib\smtplib.py", line 261, in init fqdn = socket.getfqdn() File "D:\Python37\lib\socket.py", line 676, in getfqdn hostname, aliases, ipaddrs = gethostbyaddr(name) UnicodeDecodeError: 'utf-8' codec can't decode byte 0xc2 in position 0: invalid continuation byte</module>
想问下这个报错信息啥意思,之前试了另一套发邮件的代码,群友测试没问题,但是我一跑就出这个。 试过廖雪峰和菜鸟的代码,也都是这个报错信息。
环境: Win10 64 位 python3.7 Pycharm
拜谢!
1
GeneralL OP 结贴,已解决是主机名含有中文字符原因。
|
2
zyxbcde 2018-09-05 09:09:49 +08:00
发邮件用 yagmail 行了,代码比这个好看多了。
|
4
julyclyde 2018-09-06 13:52:16 +08:00
@GeneralL 你主机名不是 smtp.qq.com 么
|