使用ezgmail发送邮件遇AttributeError: 'bool'无encode属性求助
使用ezgmail发送邮件时触发email_policybase.py的AttributeError错误
使用ezgmail发送自动化邮件时,email_policybase.py抛出了AttributeError错误,调用代码如下:
ezgmail.send('sender@gmail.com', 'test', 'test')
完整报错栈信息:
Traceback (most recent call last): File "c:\Automation\mailer.py", line 3, in <module> ezgmail.send('sender@gmail.com', 'test', 'test') File "C:\Program Files\Python311\Lib\site-packages\ezgmail\__init__.py", line 603, in send msg = _createMessage(sender, recipient, subject, body, cc, bcc, mimeSubtype, _threadId=_threadId) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Program Files\Python311\Lib\site-packages\ezgmail\__init__.py", line 499, in _createMessage rawMessage = {"raw": base64.urlsafe_b64encode(message.as_bytes()).decode("ascii")} ^^^^^^^^^^^^^^^^^^ File "C:\Program Files\Python311\Lib\email\message.py", line 208, in as_bytes g.flatten(self, unixfrom=unixfrom) File "C:\Program Files\Python311\Lib\email\generator.py", line 116, in flatten self._write(msg) File "C:\Program Files\Python311\Lib\email\generator.py", line 199, in _write self._write_headers(msg) File "C:\Program Files\Python311\Lib\email\generator.py", line 422, in _write_headers self._fp.write(self.policy.fold_binary(h, v)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Program Files\Python311\Lib\email\_policybase.py", line 337, in fold_binary folded = self._fold(name, value, sanitize=self.cte_type=='7bit') ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Program Files\Python311\Lib\email\_policybase.py", line 369, in _fold parts.append(h.encode(linesep=self.linesep, maxlinelen=maxlinelen)) ^^^^^^^^ AttributeError: 'bool' object has no attribute 'encode'
我在_policybase.py中添加了打印语句,输出h的值和类型如下:
1.0 || <class 'email.header.Header'> 7bit || <class 'email.header.Header'> sender@gmail.com || <class 'email.header.Header'> False || <class 'bool'>
尝试将h强制转换为header.Header对象后,出现新的AttributeError:
Traceback (most recent call last): File "c:\Automation\mailer.py", line 3, in <module> ezgmail.send('sender@gmail.com', 'test', 'test') File "C:\Program Files\Python311\Lib\site-packages\ezgmail\__init__.py", line 603, in send msg = _createMessage(sender, recipient, subject, body, cc, bcc, mimeSubtype, _threadId=_threadId) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Program Files\Python311\Lib\site-packages\ezgmail\__init__.py", line 499, in _createMessage rawMessage = {"raw": base64.urlsafe_b64encode(message.as_bytes()).decode("ascii")} ^^^^^^^^^^^^^^^^^^ File "C:\Program Files\Python311\Lib\email\message.py", line 208, in as_bytes g.flatten(self, unixfrom=unixfrom) File "C:\Program Files\Python311\Lib\email\generator.py", line 116, in flatten self._write(msg) File "C:\Program Files\Python311\Lib\email\generator.py", line 199, in _write self._write_headers(msg) File "C:\Program Files\Python311\Lib\email\generator.py", line 422, in _write_headers self._fp.write(self.policy.fold_binary(h, v)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Program Files\Python311\Lib\email\_policybase.py", line 337, in fold_binary folded = self._fold(name, value, sanitize=self.cte_type=='7bit') ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Program Files\Python311\Lib\email\_policybase.py", line 371, in _fold header.Header(h) File "C:\Program Files\Python311\Lib\email\header.py", line 217, in __init__ self.append(s, charset, errors) File "C:\Program Files\Python311\Lib\email\header.py", line 295, in append s = s.decode(input_charset, errors) ^^^^^^^^ AttributeError: 'bool' object has no attribute 'decode'
恳请各位提供解决思路!
内容的提问来源于stack exchange,提问作者Jordan Douglas
相关产品推荐
相关产品推荐

