python smtplib.SMTP()发送邮件报“UnicodeDecodeError: ‘utf-8’ codec can’t decode byte 0xba in position 0: i
python smtplib.SMTP()发送邮件报“UnicodeDecodeError: ‘utf-8’ codec can’t decode byte 0xba in position 0: invalid start byte”错误
问题描述:
在用python 用smtplib.SMTP()函数发生邮件时报出“UnicodeDecodeError: ‘utf-8’ codec can’t decode byte 0xba in position 0: invalid start byte”错误。
具体代码:
import smtplib
smtp = smtplib.SMTP()
报出错误:
Traceback (most recent call last):
File "D:\Internet worm study\project\bozong\send_email.py", line 53, in <module>
send_email = smtplib.SMTP()
File "D:\python\lib\smtplib.py", line 263, in __init__
fqdn = socket.getfqdn()
File "D:\python\lib\socket.py", line 791, in getfqdn
hostname, aliases, ipaddrs = gethostbyaddr(name)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xba in position 0: invalid start byte
内容分析是编码出错,但是我查看整个代码不涉及到编码问题。
用debug查看问题的原码:
问题代码
socket.py文件中,对应上面报错的其中一个文件,点开即可定位到。
try:
hostname, aliases, ipaddrs = gethostbyaddr(name)
gethostbyaddr(name)是获取本电脑的名字。我的电脑是“红米笔记本”,估计是电脑名称的问题。
--------------解决的办法--------------
1.在源码中进行修改
try:
hostname, aliases, ipaddrs = gethostbyaddr(name.encode('ascii','ignore'))
#添加“.encode('ascii','ignore')”
只能解决当前电脑问题,不清楚是否存在其他电脑兼容性问题。
2.修改自己笔记本的名称为英文数字
参考:https://jingyan.baidu.com/article/574c521966afb16c8c9dc160.html
修改笔记本名称要重启,注意保存文件。
参考
博主:Systemd
链接:https://blog.csdn.net/wwyy2018/article/details/83346812?ops_request_misc=&request_id=&biz_id=102&utm_term=python%2520smtplib.SMTP()%25E5%258F%2591%25E9%2580%2581%25E9%2582%25AE%25E4%25BB%25B6%25E6%258A%25A5%25E2%2580%259CUni&utm_medium=distribute.pc_search_result.none-task-blog-2allsobaiduweb~default-0-83346812.first_rank_v2_pc_rank_v29
本文地址:https://blog.csdn.net/weixin_41278305/article/details/110943401
上一篇: python- os模块学习-自用
推荐阅读
-
【python】pip安装报错UnicodeDecodeError: 'ascii' codec can't decode byte 0xce in position 7: ordinal not i
-
python smtplib.SMTP()发送邮件报“UnicodeDecodeError: ‘utf-8’ codec can’t decode byte 0xba in position 0: i
-
python爬虫-UnicodeDecodeError: 'utf-8' codec can't decode byte 0x8b in position 1: invalid start byte
-
python爬虫-UnicodeDecodeError: 'utf-8' codec can't decode byte 0x8b in position 1: invalid start byte
-
python smtplib.SMTP()发送邮件报“UnicodeDecodeError: ‘utf-8’ codec can’t decode byte 0xba in position 0: i