Я написал почтовый клиент и время от времени замечал, что ссылки в некоторых полученных письмах не работают из-за двух точек в URL-адресе, где должна быть одна.
Исследованием я обнаружил, что во всех таких случаях две точки находятся в начале строки цитируемого печатаемого HTML.
При чтении RFC 2821 я вижу, что это, вероятно, происходит из-за заполнения точек. Мой вопрос в основном таков: кто должен делать набивку точек и кто должен ее удалять?
Если мы возьмем простую последовательность, мы получим следующее:
A ----> B ----> C ----> D
где A - отправляющий клиент, B - SMTP-сервер, на который A отправляет почту, C - SMTP-сервер получателя, а D - получающий клиент.
RFC 2821, кажется, говорит, что A должен добавить дополнительную точку, если линия начинается с точки, и B должен удалить ее (что имеет смысл для меня). Однако на практике я наблюдаю, что B добавляет точку, если A забывает, но в противном случае ничего не делает. Письма, прибывающие в D, не удалили лишнюю точку. Я неправильно понял RFC, и поэтому работа D состоит в том, чтобы удалить лишнюю точку?