Encaminhando um email com python smtplib
Estou tentando montar um script que encaminha automaticamente determinados emails que correspondem a um critério específico para outro email.
Tenho o download e a análise de mensagens usando o imaplib e o email funcionando, mas não consigo descobrir como encaminhar um email inteiro para outro endereço. Preciso criar uma nova mensagem a partir do zero ou posso modificar a antiga e reenviá-la?
Aqui está o que eu tenho até agora (cliente é uma conexão imaplib.IMAP4 e id é um ID de mensagem):
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())
Tenho certeza de que há algo um pouco mais complicado que preciso fazer em relação ao conteúdo MIME da mensagem. Certamente, existe uma maneira simples de encaminhar a mensagem inteira?
# This doesn't work either, it just freezes...?
mail['From'] = '[email protected]'
mail['To'] = '[email protected]'
smtp.sendmail(user, ['[email protected]'], mail.as_string())