@ashumkin
системный разработчик

SMTP выдаёт 334 UGFzc3dvcmQ6 в ответ на MAIL FROM. Насколько корректно с точки зрения RFC?

В нашем ПО есть функционал по рассылке файлов по e-mail. Для этого используются компоненты SMTP из пакета OverbyteICS. На днях один из пользователей ПО прислал ошибку, мол, рассылка не проходит.
Из лога SMTP видно
SMTP component (c) 1997-2008 Francois Piette V6.18
Open mail server (:25).
Response: 220 ... Microsoft ESMTP MAIL Service ready at Fri, 16 Oct 2015 11:11:52 +0300
Command: EHLO FWD
Response: 250-... Hello [....]
Response: 250-SIZE 20971520
Response: 250-PIPELINING
Response: 250-DSN
Response: 250-ENHANCEDSTATUSCODES
Response: 250-STARTTLS
Response: 250-AUTH LOGIN
Response: 250-8BITMIME
Response: 250-BINARYMIME
Response: 250 CHUNKING
Command: AUTH LOGIN
Response: 334 VXNlcm5hbWU6
Command:
Response: 334 VXNlcm5hbWU6
Command:
Response: 334 VXNlcm5hbWU6
RequestDone: Error=334 Open (smtpOpen)
Command: MAIL FROM:<....>
Response: 334 UGFzc3dvcmQ6
RequestDone: Error=334 Mail (smtpMail)

видно, что сервер поддерживает LOGIN-аутентификацию
используемый нами компонент, видя, что сервер поддерживают аутентификацию, пытается безусловно её использовать
однако, логин-пароль пользователем не заданы, так как утверждают, что возможна и анонимная отправка - сервер свой, внутренний
однако, на пустой логин сервер запрашивает его снова и снова: 334 VXNlcm5hbWU6
после (видимо, трёх безуспешных попыток) компонент посылает команду MAIL FROM, и тут самое интересное: сервер запрашивает пароль: 334 UGFzc3dvcmQ6

согласно RFC2554
If an AUTH command fails, the server MUST behave the same as if
the client had not issued the AUTH command

однако же, строго говоря команда AUTH ещё не закончилась ))
как считаете это бага сервера? в RFC про MAIL FROM:
If accepted,
the receiver-SMTP returns a 250 OK reply.

про ошибки слова нет (не увидел)

и кто знает, может эту багу уже починили? видно, что SMTP сервер от Microsoft, но версия мне неизвестна (пока что; у пользователя запросил, но ответят ли - хз)
  • Вопрос задан
  • 4764 просмотра
Пригласить эксперта
Ответы на вопрос 1
@ashumkin Автор вопроса
системный разработчик
в компонент лезть не пришлось,
просто для Auth был указан тип поведения AutoSelect, что означает "выбрать тот тип авторизации, который поддерживается сервером (по его ответу на EHLO)
теперь если логин не задан, то используется None (не использовать аутентификацию), иначе - так же, как было - AutoSelect
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы