Я пишу скрипт Python для обработки писем, возвращенных с Procmail. Как было предложено в этом question, я использую следующий Procmail конфигурации:Разбор электронной почты с Python
:0:
|$HOME/process_mail.py
Мой process_mail.py скрипт приема электронной почты, как это с помощью стандартного ввода:
From hostname Tue Jun 15 21:43:30 2010
Received: (qmail 8580 invoked from network); 15 Jun 2010 21:43:22 -0400
Received: from mail-fx0-f44.google.com (209.85.161.44)
by ip-73-187-35-131.ip.secureserver.net with SMTP; 15 Jun 2010 21:43:22 -0400
Received: by fxm19 with SMTP id 19so170709fxm.3
for <[email protected]>; Tue, 15 Jun 2010 18:47:33 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.103.84.1 with SMTP id m1mr2774225mul.26.1276652853684; Tue, 15
Jun 2010 18:47:33 -0700 (PDT)
Received: by 10.123.143.4 with HTTP; Tue, 15 Jun 2010 18:47:33 -0700 (PDT)
Date: Tue, 15 Jun 2010 20:47:33 -0500
Message-ID: <[email protected]>
Subject: TEST 12
From: Full Name <[email protected]>
To: [email protected]
Content-Type: text/plain; charset=ISO-8859-1
ONE
TWO
THREE
Я пытаюсь разбора сообщение таким образом:
>>> import email
>>> msg = email.message_from_string(full_message)
Я хочу получить поля сообщений, такие как «От», «Кому» и «Тема». Однако объект сообщения не содержит ни одного из этих полей.
Что я делаю неправильно?
Как получить тело сообщения электронной почты здесь? – Anuj
Если вы действительно хотите, чтобы весь сайт электронной почты RFC2822 с необработанными структурами MIME и все, разбор сообщения в Python в основном является излишним; тело - это все после первой пустой линии. Обычно, с современными сообщениями, вы хотите проанализировать структуру MIME и извлечь одну или несколько частей тела. – tripleee