特定の条件に一致する特定の電子メールを別の電子メールに自動的に転送するスクリプトをまとめようとしています。
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'] = 'source.email.address@domain.com'
forward['To'] = 'my.email.address@gmail.com'
smtp.sendmail(user, ['my.email.address@gmail.com'], forward.as_string())
メッセージのMIMEコンテンツに関して、もう少し複雑なことをする必要があると確信しています。確かに、メッセージ全体を転送する簡単な方法はありますか?
# This doesn't work either, it just freezes...?
mail['From'] = 'source.email.address@domain.com'
mail['To'] = 'my.email.address@gmail.com'
smtp.sendmail(user, ['my.email.address@gmail.com'], mail.as_string())