Ứng dụng của tôi được viết bằng python. Những gì tôi đang làm là tôi đang chạy một kịch bản trên mỗi email nhận được bởi postfix và làm một cái gì đó với nội dung email. Procmail chịu trách nhiệm chạy tập lệnh lấy email làm đầu vào. Vấn đề bắt đầu khi tôi đang chuyển đổi thông điệp đầu vào (có thể là văn bản) thành đối tượng email_message (vì sau này có ích). Tôi đang sử dụng email.message_from_string (trong đó email là mô-đun email mặc định, đi kèm với python).Cơ thể email đôi khi là một chuỗi và một danh sách. Tại sao?
import email message = email.message_from_string(original_mail_content) message_body = message.get_payload()
MESSAGE_BODY này đôi khi được trả về một danh sách [dụ email.message.Message, email.message.Message dụ] và đôi khi trả về một chuỗi (nội dung cơ thể thực tế của các email gửi đến). Tại sao lại như vậy. Và thậm chí tôi còn tìm thấy một quan sát nữa. Khi tôi duyệt qua email.message.Message.get_payload() docstring, tôi thấy điều này ..
"" " Tải trọng sẽ là đối tượng danh sách hoặc chuỗi. Nếu bạn tắt đối tượng danh sách, bạn sửa đổi tải trọng của tin nhắn tại chỗ ..... "" "
Vậy làm thế nào để tôi có phương pháp chung để có được nội dung email thông qua python? Hãy giúp tôi ra.
Trong danh sách thư tôi đã nói, tôi đã thử chạy get_payload() trên mỗi đối tượng. Cả hai trở lại cùng một điều. Là một loại đối tượng của bản sao của người khác, để nếu tôi nhận được get_payload được gọi là trên một phần duy nhất sẽ làm gì ??? –
Phụ thuộc vào những gì bạn đã được gửi. Ví dụ: bạn có thể nhận được văn bản/html và văn bản/phiên bản thuần túy của cùng một điều. Bạn có thể sửa đổi chức năng để tìm và thích loại văn bản/nội dung đơn giản hơn các loại/văn bản khác. – bobince
Bobince tuyệt vời.Bạn hoàn toàn đúng: D –