对不起,我的英语。我需要从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
如果邮件仅包含文本(不带附件),则此代码有效
答案 0 :(得分:1)
您的错误消息是什么?
此外,如果您使用的是Python 3.2+,是否尝试使用smtp.send_message(message, FROM_ADDR, TO_ADDR)
而不是smtp.sendmail()
?看起来它努力尝试更正确地做事,尤其是在SMTP连接中的字符编码方面。