Формат заголовков SMTP для сканирования электронной почты ящика входящих сообщений

Можно использовать grep на MBR для выяснения:

sudo dd if=/dev/sda bs=512 count=1 2>&1 | grep GRUB
sudo dd if=/dev/sda bs=512 count=1 2>&1 | grep LILO

Только один из тех должен возвратить соответствие.

Для получения дополнительной информации и другие способы выяснить, проверьте этот ответ в askubuntu.

0
13.12.2013, 10:08
2 ответа

Форматом сообщения является RFC 2282, интернет-Формат сообщения. Формат файла кажется на описание mbox формата который является RFC 4155.

Согласно RFC 4155, новое сообщение в mbox базе данных начинается From ключевое слово, одиночный пробел затем адрес отправителя, о котором сообщают, одиночного пробела и даты UTC того, когда сообщение было получено.

После этого поля заголовка разделяются символами новой строки и начинаются с буквы. Если первый символ новой строки является пробелом (обычно вкладка, я верю), затем, это - продолжение значения предыдущей строки заголовка. Ключи заголовка разделяются от значений заголовка : (пространство двоеточия).

Заголовок и тело разделяются пустой строкой. Каждое сообщение также разделяется пробелом.

Что касается извлечения предмета с awk, сначала извлеките заголовки, затем передают его через это:

awk '/^Subject: .*/ {print substr($0,10)}'

Это печатает строку, запускающуюся в положении 10.

5
28.01.2020, 02:14
  • 1
    +1 редактирования для ссылки на mbox формат. Существует (был в какой-то момент, я не использовал mbox для 10 + годы), настоящая проблема с электронными письмами, которые содержат почтовые заголовки как тело сообщения, которое не обработал бы Ваш подход. –  Anthon 13.12.2013, 10:31
  • 2
    Примите во внимание это Subject:Foo, Subject :Foo, Subject : Foo (и т.д., включая с последовательным пробелом), законны - это приведет к сбою по некоторым стандартам совместимые заголовки. слова благодарности –  Chris Down 13.12.2013, 11:01
  • 3
    Вы говорите, что каждое сообщение разделяется пустой строкой. Что, если тело сообщения содержит пустую строку? –  Håkon Hægland 13.12.2013, 11:28
  • 4
    @HåkonHægland: следующее сообщение должно начаться From foo@bar... Если следующая строка не запускает новое сообщение затем, это считается частью предыдущего сообщения. –  bahamat 14.12.2013, 04:29
  • 5
    @ChrisDown: Да, положительная сторона. Мораль истории, awk вероятно, не лучший mbox процессор. Выражение всех возможных перестановок может быть сделано намного легче на других языках, не говоря уже о существующем mbox обработка библиотек. –  bahamat 14.12.2013, 04:30

Сообщение в Вашем ящике входящих сообщений разделяется двойной новой строкой, сопровождаемой From (уведомление существует нет : после от.

Это - простой ответ. Конечно, можно послать электронное письмо, которое содержит одно или несколько электронных писем как текст, включая заголовки, и это - то, где вещи становятся грязными.

Если программа отправки (или Ваши программы, которые пишут ящик входящих сообщений) не добавляют информацию о длине, необходимо полагаться на эвристику, при этом простой и эффективный должен посмотреть на полученную метку времени даты электронных писем, как ящик входящих сообщений обычно находится в последовательных метках времени. (но Вы могли, отправил некоторый почтовый текст с 'созданными' будущими метками времени).

Если у Вас нет электронных писем о почтовых заголовках, необходимо согласиться с двойной новой строкой + From

2
28.01.2020, 02:14

Теги

Похожие вопросы