2009-09-22 4 views
-1

Что такое SMTP-конверт и заголовок SMTP и какова связь между ними? Как извлечь их с помощью Perl?Как извлечь конверт SMTP и заголовок с помощью Perl?

+0

Чтобы лучше описать их, вам нужно будет описать платформу и языки, которые вы используете – AnthonyWJones

+0

. Хотите найти в linux и perl – joe

+0

Ну, SMTP описан в его RFC. http://tools.ietf.org/html/rfc2812 Как я уже говорил, есть много, что вы можете сделать, чтобы помочь себе, прежде чем приходить сюда. –

ответ

4

SMTP-сообщение содержит набор заголовков, таких как From, To, CC, Subject и целый ряд других материалов.

Конверт SMTP - это просто имя, присвоенное небольшому набору заголовков, префиксному стандартным SMTP-сообщением, когда сообщение перемещается агентом передачи сообщений (то есть SMTP-сервером). Наиболее распространенными заголовками конвертов являются X-Sender, X-Receiver и Received.

Например, Microsoft SMTP Server добавит X-Sender и ряд заголовков X-Receiver к верхней части сообщения, когда он отбрасывает сообщение в папку Drop. Для каждого почтового ящика будет один X-приемник, который соответствует домену, в котором находится папка Drop.

Еще один пример: SMTP-серверы добавляют заголовок Receive: при получении сообщения с другого SMTP-сервера. Этот заголовок дает различные детали обмена. Поэтому большинство электронных писем на tinternet, когда-то прибывших в конечный пункт назначения, будет иметь ряд заголовков получателей, указывающих, что сервер SMTP-серверов перешел в сообщение, которое нужно отправить. Обычно серверы удаляют заголовки X-Sender, X-Receiver, когда сообщение окончательно перемещается в почтовый ящик POP3.

Доступ Headers

На платформе окон единственным способом я нашел, чтобы получить доступ к заголовкам конверта, чтобы просто открыть и разобрать файл EML. Его довольно простой формат (name: value CR LF).

Снова на платформе Windows можно получить доступ к главному набору заголовков сообщений и частей тела, используя набор объектов на базе COMOS CDOSYS.dll. Как бы вы это делали на других платформах, которых я не знаю. Однако формат заголовка довольно прямолинейный в соответствии с заголовками конвертов, его доступ к частям тела, которые потребуют более творческого кодирования.

+0

Другие MTA добавят заголовки в виде X-Envelope-From: и X-Envelope-To: –

4

Конверт - это информация адресации, отправленная на сервер во время начального разговора с помощью команд «MAIL FROM:» и «RCPT TO:».

Заголовок SMTP представляет собой коллекцию строк заголовка, которые отправляются после выдачи команды DATA.

Как вы их находите, зависит от того, как/откуда вы получаете сообщение, и нам понадобится гораздо больше подсказок, чтобы попытаться ответить на это.

1

Здесь вы можете думать о трех разных вещах. Существуют директивы, которые были обменены между SMTP-серверами SMTP (во время каждого перехода, которое принимало сообщение) ... заголовки, которые были созданы MUA и заголовками, которые были добавлены (или изменены) MTA по маршруту, по которому проходило данное сообщение.

«Конверт» относится к информации, предоставленной MTA (как правило, к последней или конечной точке назначения MTA). Отправитель включает набор заголовков после директивы DATA в SMTP-соединении (отделенный от тела сообщения пустой строкой ... но дважды проверьте RFC, если это специально предполагается, что это пара CR/LF). Обратите внимание, что локальный MTA может добавлять дополнительные заголовки и даже изменять некоторые заголовки перед сохранением или пересылкой сообщения.

(Обычно он должен добавлять только заголовки Received-by:).

Некоторые MTA настроены на добавление заголовков X-Envelope-To: and/or X-Envelope-From:. Некоторые из них по-прежнему будут фильтровать содержимое этих заголовков (например, чтобы предотвратить утечку слепых копий). (Senario: оригинальная MUA имела каталог BCC: line, в котором было записано несколько людей с сообщением со всеми именами друг с другом в заголовках CC: для каждого домена получателя (результат MX) MTA выдаст только RCPT TO: только для подмножества адресов, для которых хост, если соответствующий результат (его собственный хаб, smarthost или любой действительный MX для цели) --- таким образом, любые подмножества получателей, которые совместно используют MX друг с другом, будут видеть утечку в X-Envelope-To: заголовки, созданные MTA, которые были неаккуратными относительно обработки этой детали).

Также не следует, чтобы строка Envelope-From содержала только имя хоста/домена, указанное в директивах HELO FROM: или EHLO FROM: в обмене SMTP. Он не может использоваться как адрес возврата, например, для ответов.