Mon application est écrite en python. Ce que je fais est que je cours un manuscrit sur chaque email reçu par postfix et fait quelque chose avec le contenu d'email. Procmail est responsable de l'exécution du script en prenant l'email comme entrée. Le problème a commencé lors de la conversion du message d'entrée (peut-être du texte) en objet email_message (car ce dernier est très pratique). J'utilise email.message_from_string (où email est le module email par défaut, livré avec python).Email corps est une chaîne parfois et une liste parfois. Pourquoi?
import email message = email.message_from_string(original_mail_content) message_body = message.get_payload()
Ce message_body revient parfois une liste [par exemple email.message.Message, par exemple email.message.Message] et revenir quelque temps une chaîne (contenu du corps réel de l'e-mail entrant). Pourquoi est-ce. Et même j'ai trouvé une observation de plus. Lorsque je parcourais la docstring email.message.Message.get_payload(), je l'ai trouvé ..
"" " La charge utile sera soit un objet de liste ou une chaîne.Si vous mutez l'objet liste, vous modifiez la charge utile du message en place ..... "" "
Alors, comment ai-je une méthode générique pour obtenir le corps de l'email via Python? Sil te plait aide moi.
Dans la liste des messages dont j'ai parlé, j'ai essayé d'exécuter get_payload() sur chacun des objets. Les deux retournent la même chose. Est-ce qu'un type d'objet est un clone de l'autre, de sorte que si je reçois le get_payload appelé, une seule partie fera l'affaire ??? –
Cela dépend de ce que vous avez reçu. Vous pouvez généralement, par exemple, obtenir un texte/html et un texte/version simple de la même chose. Vous pouvez modifier la fonction à rechercher et préférer un type de texte/type de contenu par rapport aux autres types de texte. – bobince
Impressionnant bobince.Vous avez absolument raison: D –