我已阅读on how to forward an email using imaplib and stmplib。我从gmail中获取这些电子邮件(附件),对它们进行排序,并希望将它们转发到另一个电子邮件帐户。
我的代码在这里,看起来很相似:
message.mail.replace_header("From", from_addresses)
message.mail.replace_header("To", to_addresses)
server = smtplib.SMTP('smtp.gmail.com:587')
server.ehlo()
server.starttls()
server.login(settings.RECEIPTS_EMAIL_ACCOUNT, settings.RECEIPTS_EMAIL_PASSWORD)
server.sendmail(from_addresses, to_addresses, message.mail.as_string())
server.close()
但是,只要它发送到sendmail
上message.mail.as_string()
行的邮件,就会崩溃
*** AttributeError: 'list' object has no attribute 'encode'
如何将此转换为我可以通过imaplib发送的内容?
答案 0 :(得分:0)
根据its documentation,SMTP.sendmail()
从地址中获取单个地址,而不是列表。
所以,试试:
server.sendmail(from_address, to_addresses, message.mail.as_string())
或
server.sendmail(from_addresses[0], to_addresses, message.mail.as_string())
同样,Message.replace_header
不应传递给列表。试试这个:
message.mail.replace_header("From", from_addresses[0])
message.mail.replace_header("To", to_addresses[0])
server = smtplib.SMTP('smtp.gmail.com:587')
server.ehlo()
server.starttls()
server.login(settings.RECEIPTS_EMAIL_ACCOUNT, settings.RECEIPTS_EMAIL_PASSWORD)
server.sendmail(from_addresses[0], to_addresses, message.mail.as_string())
server.close()