Moja aplikacja jest napisana w pythonie. Co robię, to uruchamiam skrypt na każdym e-mailu otrzymanym przez Postfix i robię coś z treścią e-mail. Procmail jest odpowiedzialny za uruchomienie skryptu, który przyjmuje e-mail jako dane wejściowe. Problem zaczął się, gdy konwertowałem komunikat wejściowy (może to być tekst) na obiekt email_message (ponieważ ten drugi przydaje się). Używam email.message_from_string (gdzie e-mail jest domyślnym modułem e-mail, jest dostarczany z pythonem).Treść wiadomości e-mail jest czasem łańcuchem i czasem listą. Czemu?
import email message = email.message_from_string(original_mail_content) message_body = message.get_payload()
Ten MESSAGE_BODY czasami powrocie listę [wystąpienie email.message.Message, przykład email.message.Message] i kiedyś powrocie ciąg (rzeczywista zawartość treści wiadomości przychodzących). Dlaczego tak jest. I nawet znalazłem jeszcze jedną obserwację. Przeglądając dokumentację e-mail.message.Message.get_payload(), znalazłem to ..
"" " Ładunek będzie obiektem listowym lub łańcuchem znaków.Jeśli zmutujesz obiekt obiekt listy, modyfikujesz ładunek komunikatu w miejscu ... "" ""
Jak mam ogólną metodę pobierania treści wiadomości e-mail przez pythona? Proszę pomóż mi.
Na liście wiadomości, o której mówiłem, próbowałem uruchomić get_payload() na każdym z obiektów. Obie zwracają to samo. Czy jeden obiekt jest klonem drugiego, więc jeśli dostanę wywołanie get_payload na jednej części, zrobię to ??? –
Zależy od tego, co zostało wysłane. Często można na przykład uzyskać tekst/html i wersję tekstową/prostą tego samego. Można zmodyfikować funkcję, aby wyszukać i preferować tekst/zwykły typ zawartości względem innych tekstów/typów. – bobince
Niesamowite bobince.Masz absolutną rację: D –