python邮箱发件箱没显示_盘点学习Python发邮件过程中的出错信息

学习Python 发邮件过程中遇到了异常情况,今天做一次复盘:

1.ValueError: server_hostname cannot be an empty string or start with a leading dot.

41223541_202004131537580503671264_wm.jpg

错误提示说serverhost 不能是空。了解了一下,Python版本3.7要填入host参数,原因是版本3.7修改了ssl.py,导致smtplib.SMTP_SSL也有问题。解决办法指定服务器函数 填入host

server = smtplib.SMTP_SSL(smtp_server)

或者将代码优化成,省略第43行,如下

41223541_202004131552080519191328.jpg

2.收件箱图片格式显示异常(附件显示tcmime.1466.1547. ... .bin)

在群发邮件时发现收件箱为QQ邮箱的收件附件显示异常(按照官网示例的代码运行,如下),

41223541_202004131608050706878576_wm.jpgtcmime.1466.1547. ... .bin显示异常一般都是编码问题,百度了一下,代码如下则可以解决

41223541_202004131612160816842054_wm.jpg

当然不止有这一种方法,在以后学习过程慢慢探索吧!加油!

3.又又又有乱码(收件人昵称乱码,看图)

41223541_202004131618010472459279_wm.jpg

这个各种方法都试过了,('utf-8'编码,多次编码解码)就是没有效果呢。路过大神多指点。

4.读取文件异常,第一行元素出现\ufeff,导致文件读取异常,后边部分运行失败

41223541_202004131853370331832623_wm.jpg

这种解决办法就是,第12行改为: with open('chengji.txt','r',encoding='utf-8-sig') as fp:  首行出现的"\ufeff "叫BOM(Byteorder Mark),用来声明文件的编码信息。‘utf-8’是以字节编码为单元,字节顺序在所有系统中都是一样的。没有字节序问题,因此不需要BOM(字节序签)。当用'utf-8'来读带有BOM的文件时,它会把BOM当做文件内容来处理,就会出现类似上述的错误。'utf-8-sig' sig(signature)带签名的‘utf-8’。当用'utf-8-sig'来读带有BOM的文件时,它会把BOM单独处理,与文本内容隔离开,也就是我们所需要的结果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值