Python yagmail附件不工作

2024-09-28 23:42:50 发布

您现在位置:Python中文网/ 问答频道 /正文

{1.8.0版本的Python在Windows上使用^-3.0的Python。我可以让yagmail从我的主机发送电子邮件,但附件就是不起作用。在

yagmail.Connect('myemail@gmail.com','password').send('someguy@gmail.com', 'Test', 'This is a test', 'c:\\users\\lenovo\\appdata\\local\\temp\\mydoc.docx')

这将返回一个空dict,控制台中没有错误。邮件显示了正确的主题和正文,但没有附件。一开始我以为我的防病毒软件可能会删除附件,但在防病毒日志中没有任何迹象表明它是。在

注:很明显,yagmail没有标签,我也没有代表来创建它。在

编辑-1:一些进展(?)在

^{pr2}$

…导致以下错误。在

Traceback (most recent call last):
  File "<string>", line 301, in runcode
  File "<interactive input>", line 1, in <module>
  File "C:\Python33\lib\site-packages\yagmail-0.3.78-py3.3.egg\yagmail\yagmail.py", line 73, in send
    return self._attempt_send(addresses['recipients'], msg.as_string())
  File "C:\Python33\lib\site-packages\yagmail-0.3.78-py3.3.egg\yagmail\yagmail.py", line 79, in _attempt_send
    result = self.smtp.sendmail(self.user, recipients, msg_string)
  File "C:\Python33\lib\smtplib.py", line 749, in sendmail
    msg = _fix_eols(msg).encode('ascii')
UnicodeEncodeError: 'ascii' codec can't encode characters in position 713-715: ordinal not in range(128)

编辑2:感谢PascalvKooten,请参阅下面的答案。只是关于语法的注释。。。在

yagmail.SMTP('mymail@gmail.com','password').send('someguy@gmail.com','Test1.2','This is a test','C:\\Users\\Lenovo\\AppData\\Local\\Temp\\mydoc.docx')

不适合我。不过,下面的结构确实有效。在

contents = ['This is a test', 'C:\\Users\\Lenovo\\AppData\\Local\\Temp\\mydoc.docx']
yagmail.SMTP('mymail@gmail.com','password').send('someguy@gmail.com','Test1.2',contents)

Tags: intestcomsend附件islinemsg
1条回答
网友
1楼 · 发布于 2024-09-28 23:42:50

作为yagmail包的维护者回答:请参阅此问题https://github.com/kootenpv/yagmail/issues/5

从0.3.81版开始应该解决这个问题。在

请用pip3 install -U yagmail更新

我从来没有在windows上测试过这个,所以这是我唯一的不确定因素。在

相关问题 更多 >