Назад | Перейти на главную страницу

ОШИБКА: сообщение не отправлено. Сервер ответил: 354

В веб-почте каждый пользователь получает ошибку «ОШИБКА: сообщение не отправлено. Сервер ответил: 354» при отправке писем.

Но письма отправляются правильно и доходят правильно.

Вы можете сказать мне, в чем проблема и почему она возникла?

ОБНОВИТЬ: В некоторых ресурсах я обнаружил, что это не ошибка, а стандартное информационное сообщение. С другой стороны, это раздражает. Можете ли вы сказать мне, правда ли это, и если это так, как я могу этого избежать?

TL; DR:

Ваша программа веб-почты плохо написана и считает, что код ответа 354 является ошибкой, хотя это не так.

Длинный ответ:

Так выглядит SMTP-диалог (S = сервер, C = клиент)

  S: 220 foo.com Simple Mail Transfer Service Ready
  C: EHLO bar.com
  S: 250-foo.com greets bar.com
  S: 250-8BITMIME
  S: 250-SIZE
  S: 250-DSN
  S: 250 HELP
  C: MAIL FROM:<Smith@bar.com>
  S: 250 OK
  C: RCPT TO:<Jones@foo.com>
  S: 250 OK
  C: DATA
  S: 354 Start mail input; end with <CRLF>.<CRLF>
  C: Blah blah blah...
  C: ...etc. etc. etc.
  C: .
  S: 250 OK
  C: QUIT
  S: 221 foo.com Service closing transmission channel

Как видите, код 354 означает: «Хорошо, мы закончили с информацией об отправителе и получателе, теперь дайте мне фактическое письмо». Однако ваша система веб-почты была закодирована так, что только коды ответов, начинающиеся с 2, означают «успешно», поэтому для обозначения проблемы требуется любой другой код. Тот, кто написал программу электронной почты, должен вернуться и прочитать RFC 5321 снова, а затем исправьте ошибку.