Код ответа SMTP для дублированного значения идентификатора сообщения

Какой код ответа SMTP сервер должен отправить, чтобы сообщить, что Message-ID поле дублирует одно уже виденное?

RFC 5322, §3.6.4 "Поля идентификации" гласит:

Поле "Message-ID:" предоставляет уникальный идентификатор сообщения, который ссылается на конкретную версию конкретного сообщения. Уникальность идентификатора сообщения гарантируется хостом, который его генерирует […].

Таким образом, нарушение этой директивы для сообщения объявляет значение Message-ID, которое уже было замечено в сообщении с другим содержанием. Это означает, что SMTP-сервер может отклонить сообщение на этой основе.

Примечание: цель не в том, чтобы запомнить каждое значение, которое когда-либо видели; это было бы обременительно для дизайна и дорого в эксплуатации. Скорее, цель состоит в том, чтобы использовать те значения, которые мы записали, чтобы обнаружить некоторую долю входящих запросов, которые нарушают вышеуказанную директиву, и отклонить их на ранней основе на этой основе.

Набор кодов, описанный в п. 4.2.2 RFC 5321 "SMTP-ответы", описывает некоторые условия, когда поля являются причиной отклонения (например, "почтовый ящик не разрешен", код ответа 553).

Каким должен быть код ответа для условия "Значение ID сообщения уже видели"?

1 ответ

Агент MTA не может и не должен отклонять почту для доставки на основе своего Message-ID.

Для этого MTA должен знать (и запоминать) все общесистемные используемые Message-ID, что, очевидно, является запретительным как в отношении требований к процессору, памяти и дискам.

Короче говоря, адаптер MTA должен принимать письма с дублирующим идентификатором сообщения, оставляя (необязательно) последующую работу по устранению дублирования для последующей обработки (например, сервером IMAP или почтовым клиентом).

Другие вопросы по тегам