Python 练习 smtp 代码错误

2018-09-04 21:45:17 +08:00
 GeneralL

求助大佬们,菜鸟初学 python,最近想试下发邮件,就找了相关的教程,代码如下:

import smtplib import email.mime.multipart import email.mime.text

msg = email.mime.multipart.MIMEMultipart() msg['From'] = 'XXXXXXXXXX@qq.com' msg['To'] = 'XXXXXXXXX@qq.com' msg['Subject'] = '最新订阅' content = """ 您好, 这是一封自动发送的邮件, 最新订阅链接为:

"""

text = email.mime.text.MIMEText(content) smtp = smtplib.SMTP() smtp.connect('smtp.qq.com',465) smtp.login('XXXXXXX@qq.com','xxxxxxxx') # 密码我放的 QQ 邮箱授权码 smtp.sendmail('XXXXXXXX@qq.com','XXXXXXXXX@qq.com',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

拜谢!

2025 次点击
所在节点    Python
4 条回复
GeneralL
2018-09-05 00:36:13 +08:00
结贴,已解决是主机名含有中文字符原因。
zyxbcde
2018-09-05 09:09:49 +08:00
发邮件用 yagmail 行了,代码比这个好看多了。
GeneralL
2018-09-05 18:00:15 +08:00
@zyxbcde 咦?是库么?我去看看。
初学,好多东西不知道
julyclyde
2018-09-06 13:52:16 +08:00
@GeneralL 你主机名不是 smtp.qq.com

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/486166

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX