python3 通过excel发送邮件报错解决办法

使用Python3批量通过Excel发送邮件时遇到AttributeError:'NoneType' object has no attribute 'strip'的报错。经过分析,发现是Excel文件存在空行导致。解决方法是检查并删除多余的空行,通过ws.max_row获取最大行号确认空行位置,删除后保存文件,再次运行程序即可避免报错。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前段时间使用python批量发邮件,通过excel获取收件人信息,结果发完后报错如下:

Traceback (most recent call last):

  File "D:\python practice\发送邮件  带附件.py", line 46, in <module>
    smtpObj.sendmail(sender, receivers, message.as_string())
  File "C:\Users\lenovo\AppData\Local\Programs\Python\Python36\lib\smtplib.py", line 871, in sendmail
    (code, resp) = self.rcpt(each, rcpt_options)
  File "C:\Users\lenovo\AppData\Local\Programs\Python\Python36\lib\smtplib.py", line 541, in rcpt
    self.putcmd("rcpt", "TO:%s%s" % (quoteaddr(recip), optionlist))
  File "C:\Users\lenovo\AppData\Local\Programs\Python\Python36\lib\smtplib.py", line 153, in quoteaddr
    if addrstring.strip().startswith('<'):

AttributeError: 'NoneType' object has no attribute 'strip'

当时百思不得其解啊,为什么发完了报错......

今天终于静下心来看了一下错误内容, NoneType object, 空类型对象,是不是表示什么都没有啊?

难道是excel多出来了空行?

于是用ws.max_row获取了一下最大行号,果然比邮件联系人行多很多

选中那些空行,删除整行,点击保存(必须点击保存啊)

再次运行程序,没有报错。

至此,问题解决~

使用excel的时候得养成一个好习惯,删除内容的时候,直接删除整行,不留下操作过的空行,否则各种程序极易认为那不是空行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值