J'essaie de mettre en place un script qui transfère automatiquement certains e-mails correspondant à un critère spécifique vers un autre e-mail.Transférer un e-mail avec python smtplib
J'ai le téléchargement et l'analyse de messages en utilisant imaplib et le courrier électronique, mais je n'arrive pas à comprendre comment transférer un courriel entier à une autre adresse. Ai-je besoin de créer un nouveau message à partir de zéro, ou puis-je modifier l'ancien et le renvoyer?
Voici ce que j'ai jusqu'à présent (client est une connexion imaplib.IMAP4 et id est un 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'] = 'sou[email protected]'
forward['To'] = '[email protected]'
smtp.sendmail(user, ['[email protected]'], forward.as_string())
Je suis sûr qu'il ya je dois faire en ce qui concerne quelque chose un peu plus compliqué au contenu MIME du message. Sûrement, il y a un moyen simple de simplement transmettre le message 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 faire une quelconque détermination. En particulier, utilisez-vous le smtplib standard? Quelle version de Python. Où smtp est-il initialisé, est-ce que connect() ed? Avez-vous eu une bonne réponse HELO? – msw
C'est le standard smtplib, python2.6.4. Le client smtplib fonctionne correctement - je peux envoyer des courriels texte simples en passant une chaîne comme dernier argument de smtp. Je veux juste trouver un moyen simple d'envoyer le contenu MIME entier d'un message téléchargé à une nouvelle adresse. – robbles