Imaplib从带有附件的gmail转发邮件(Python)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Imaplib从带有附件的gmail转发邮件(Python)相关的知识,希望对你有一定的参考价值。

对不起我的英语不好。我需要从gmail收到邮件(此邮件可以包含附件)并从另一封电子邮件转发此邮件。转发我的转发邮件代码:

            for email_id in reversed(items):
                status, data = self.imap.fetch(email_id, "(RFC822)")
                if status == 'OK':

                    if count == 2: // this message contains attachment
                        message = email.message_from_bytes(data[0][1])
                        message.replace_header("From", FROM_ADDR)
                        message.replace_header("To", TO_ADDR)

                        try:
                            smtp = smtplib.SMTP('smtp.gmail.com', 587)
                            smtp.starttls()
                            smtp.login(CLIENT_MAIL, CLIENT_PASSWORD)
                            smtp.sendmail(FROM_ADDR, TO_ADDR, message.as_string())
                            smtp.quit()
                            print("send mail")
                        except BaseException as e:
                            print(e)

                    count += 1

如果邮件仅包含文本(没有附件),此代码有效

答案

你的错误信息是什么?

另外,如果您使用的是Python 3.2+,您是否尝试过使用smtp.send_message(message, FROM_ADDR, TO_ADDR)而不是smtp.sendmail()?看起来它很难更正确地做事,特别是关于SMTP连接中的字符编码。

以上是关于Imaplib从带有附件的gmail转发邮件(Python)的主要内容,如果未能解决你的问题,请参考以下文章

Python 和 imaplib:无需下载完整电子邮件即可获取附件名称或正文

使用 Python 和 imaplib 在 GMail 中移动电子邮件

python和imaplib:如何在给定电子邮件ID的情况下下载附件文件

Imaplib:如何从 Gmail 中删除电子邮件?

使用 python imaplib 从 Gmail 中“删除”一封电子邮件?

使用 imaplib 在 gmail 中删除电子邮件时出现问题