Envoyer un courrier électronique avec python smtplib

Je suis en train de mettre ensemble un script qui transfère automatiquement certains e-mails qui correspondent à un critère spécifique à un autre e-mail.

J'ai le téléchargement et l'analyse des messages à l'aide de imaplib et e-mail de travail, mais je ne peux pas comprendre comment transférer la totalité d'un e-mail à une autre adresse. Ai-je besoin de construire un nouveau message à partir de zéro, ou je peux en quelque sorte modifier l'ancien et l'envoyer à nouveau?

Voici ce que j'ai à ce jour (le client est un imaplib.IMAP4 connexion, et l'id est un IDENTIFIANT de message):

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

Je suis sûr qu'il ya quelque chose de légèrement plus compliqué, j'ai besoin de faire à l'égard du contenu MIME du message. Il y a certainement quelque moyen simple de simplement transmettre le message en entier?

# This doesn't work either, it just freezes...?
mail['From'] = '[email protected]'
mail['To'] = '[email protected]'
smtp.sendmail(user, ['[email protected]'], mail.as_string())
Il y a trop de contexte manquant ici pour prendre toute décision. En particulier, êtes-vous à l'aide de la norme smtplib? Quelle version de Python. Où smtp est initialisé, il est connect()ed? Avez-vous reçu un bon HELO réponse?
C'est le standard smtplib, python2.6.4. Le smtplib client fonctionne très bien - je peux envoyer un simple texte, e-mails, en passant une chaîne comme le dernier argument de smtp. Je veux juste trouver un moyen simple d'envoyer l'ensemble de MIME du contenu d'un message téléchargé à une nouvelle adresse.

OriginalL'auteur robbles | 2010-04-26