Я получаю письма от Gmail с помощью PHP и IMAP; однако некоторые электронные письма не имеют messageid. Не все сообщения должны иметь messageid?PHP IMAP - Должны ли электронные письма иметь messageid?
Мне нужен уникальный идентификатор для справки, поэтому я не уверен, как еще отслеживать электронные письма без него.
Я делаю что-то неправильно?
Например здесь является заголовок электронной почты я получаю
[date] => Sun, 06 Nov 2011 21:21:56 -0500
[subject] => Daylight Saving Time? Chili's Saving Time!
[to] => [email protected]
[message_id] =>
[from] => [email protected]
[sender] => [email protected]
[reply_toaddress] => [email protected]
[size] => 14385
[msgno] => 156
[status] => Unread
Благодарности
Но поскольку нет ничего, гарантирующего это, это не помешает ошибочному/злонамеренному MTA использовать одинаковые идентификаторы сообщений для разных писем? Каков наилучший способ защитить эту ситуацию? – Pacerier
@ Pacerier, если ваша проблема заключается в том, что другой MTA не может реплицировать идентификатор сообщения вашего сервера, это сложно. Вы можете создать идентификатор сообщения как хэш времени сообщения, вашего имени хоста и секретного ключа, что затруднит создание идентификатора сообщения, но я не уверен, что вы многого выиграете. Единственным сильным методом проверки отправителя в электронной почте является подписание PGP и шифрование. –
Обновление к этому старому вопросу: я всегда считал, что идентификатор сообщения является «обязательным», но я только что обнаружил письмо в моем почтовом ящике IMAP, у которого его нет! Я посмотрел на источник. Из-за этого мое программное обеспечение для чтения сообщений IMAP потерпело крах из-за этого, как и я предполагал, что всегда есть идентификатор сообщения. –