Weiterleiten einer E-Mail mit python smtplib

Ich versuche ein Skript, das automatisch nach vorne, bestimmte E-Mails, die einem bestimmten Kriterium zu einem anderen E-Mail.

Habe ich den Download und das Parsen von Nachrichten mit imaplib und E-Mail arbeiten, aber ich kann nicht herausfinden, wie man nach vorne eine gesamte E-Mail auf eine andere Adresse. Brauche ich zum erstellen einer neuen Nachricht von Grund auf neu, oder kann ich das irgendwie ändern, das alte und neu schicken?

Hier ist, was ich bisher (client ist ein imaplib.IMAP4-Verbindung, und id eine message-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())

Ich bin sicher, es ist etwas komplizierter, muss ich was tun, mit Bezug auf den MIME-Inhalt der Nachricht. Sicherlich gibt es einige einfache Weg, nur die Weiterleitung der gesamten Nachricht obwohl?

# This doesn't work either, it just freezes...?
mail['From'] = '[email protected]'
mail['To'] = '[email protected]'
smtp.sendmail(user, ['[email protected]'], mail.as_string())
  • Es gibt zu viel Kontext fehlt hier jede Festlegung. Insbesondere sind Sie mit den standard-smtplib? Welche version von Python. Wo ist smtp initialisiert, ist es die connect () - ed? Haben Sie bekommen einen korrekten HELO Antwort?
  • Es ist die standard-smtplib, python2.6.4. Die smtplib-client funktioniert Prima - ich kann senden Sie einfache text-E-Mails durch die übergabe eines string als letztes argument von smtp. Ich will einfach nur, finden eine einfache Möglichkeit, das senden der gesamten MIME-Inhalt einer übertragenen Botschaft an eine neue Adresse.
InformationsquelleAutor robbles | 2010-04-26
Schreibe einen Kommentar