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())

questionAnswers(2)

yourAnswerToTheQuestion