2014-11-17 2 views
0

Из одного из наших приложений мы отправляем электронное сообщение на SMTP-реле с MAIL FROM, установленным как «Mr Smith» (без кавычек).SMTP Mail From - Friendly Name

Это работает в нашей среде Live, но в нашей тестовой среде он продолжает работать с сообщением «555 5.5.4 Unsupported option: Smith».

Я понял, что это потому, что между мистером Смитом есть пространство, и если бы это было одно слово, это сработало бы хорошо.

Кто-нибудь знает, какие стандарты форматирования предназначены для опции MAIL FROM? Нужно ли иметь котировки вокруг имени, то есть «мистер Смит»?

ответ

1

Окончательное руководство по SMTP - RFC 5321, «Простой протокол передачи почты».

В соответствии с пунктом 3.3, первый (или единственным) аргумент команды MAIL FROM является <reverse-path> и <reverse-path> части того же первого или только для аргумента, как ожидается, содержит исходных почтовый ящик между < и > скобками.

В пункте 4.1.1.2 указано, что обратный путь «состоит из почтового ящика отправителя». Дальнейшее чтение указывает, что в некоторых случаях для обратного пути является нулевым, и в этом случае оно выглядит как <>.

Требование к обратному пути, заключенному в скобки, по существу всегда присутствовало, начиная с первоначальной публикации RFC 772 тридцать четыре года назад.

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

+0

Я просматриваю код Java и добавляю тонны отладочных записей. MimeMessage setFrom - это новый InternetAddress («[email protected]», «Mr Smith») », и я написал точное сообщение, переданное на SMTP-сервер. Это показывает From как «Mr Smith <[email protected]>», а далее - данные получателя. – hshah

+1

Ах! Итак, теперь, когда вы определили определенную структуру, я могу сказать вам, что похоже, что вы должны использовать 'SMTPMessage', а не' MimeMessage'. Класс 'SMTPMessage' имеет несколько дополнительных методов, которые полезны для отправителя электронной почты, включая метод' setEnvelopeFrom() ', который позволит вам указать действительного отправителя конверта. –

+0

Я был глуп. Была другая часть кода (она не была написана мной), которая также определяла адрес электронной почты FROM (не спрашивайте меня, почему их было два), и не помещал «вокруг», и в результате это было делая мистера Смита <[email protected]>. – hshah