python3 通過excel傳送郵件報錯解決辦法
阿新 • • 發佈:2019-01-28
前段時間使用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的時候得養成一個好習慣,刪除內容的時候,直接刪除整行,不留下操作過的空行,否則各種程式極易認為那不是空行。