我想放在一起的脚本,自动转发符合特定条件的某些电子邮件到另一封电子邮件。转发电子邮件与蟒蛇smtplib
我已经使用imaplib和电子邮件工作下载和解析邮件,但我无法弄清楚如何将整个电子邮件转发到另一个地址。我是否需要从头建立一条新消息,或者我可以以某种方式修改旧消息并重新发送消息?
这里是我到目前为止(客户端是一个imaplib.IMAP4连接,ID是消息ID):
import smtplib, imaplib
smtp = smtplib.SMTP(host, smtp_port)
smtp.login(user, passw)
client = imaplib.IMAP4(host)
client.login(user, passw)
client.select('INBOX')
status, data = client.fetch(id, '(RFC822)')
email_body = data[0][1]
mail = email.message_from_string(email_body)
# ...Process message...
# This doesn't work
forward = email.message.Message()
forward.set_payload(mail.get_payload())
forward['From'] = '[email protected]'
forward['To'] = '[email protected]'
smtp.sendmail(user, ['[email protected]'], forward.as_string())
我敢肯定有一些稍微复杂一些,我需要就做到邮件的MIME内容。当然,只是转发整个消息的一些简单方法?
# This doesn't work either, it just freezes...?
mail['From'] = '[email protected]'
mail['To'] = '[email protected]'
smtp.sendmail(user, ['[email protected]'], mail.as_string())
这里有太多缺失的上下文来做出任何决定。特别是,你使用标准的smtplib?什么版本的Python。 smtp初始化在哪里,它是连接()编辑?你有没有得到适当的HELO回应? – msw 2010-04-27 03:11:57
这是标准的smtplib,python2.6.4。 smtplib客户端工作正常 - 我可以通过传递一个字符串作为smtp的最后一个参数来发送简单的文本电子邮件。 我只想找到一个简单的方法将下载的消息的整个MIME内容发送到新地址。 – robbles 2010-04-28 05:42:45