我想放在一起的腳本,自動轉發符合特定條件的某些電子郵件到另一封電子郵件。轉發電子郵件與蟒蛇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