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

Может ли эта ошибка SMTP быть ошибкой разработчика?

Мне возвращается сообщение об ошибке с веб-сайта, которое может показаться неправильным на стороне сервера. Однако этот сервер работает со всеми остальными сайтами в коробке. Есть ли вероятность, что я (разработчик) делаю что-то не так? Я понятия не имею, с чего начать отслеживать это на сервере, и мой системный администратор говорит, что все выглядит нормально:

The following recipient(s) cannot be reached:
  Customer Service Account on 6/3/2009 11:00 AM
         There was a SMTP communication problem with the
recipient's email server.  Please
contact your system administrator.
<fgdc.myservername.net #5.5.0 smtp;550 Requested action not taken: mailbox unavailable>

Сервер 2003, 64-битный, под управлением Exchange 2003

Сайт - Asp.Net C # с использованием маршрутизации URL

С чего бы мне начать устранение неполадок?


ОБНОВИТЬ

Оказалось, что мой системный администратор проследил проблему до уровня защиты от спама. Оказывается, MIMESweeper может выбросить сообщение, так как видит сообщение с нашей фермы веб-серверов, пытающееся отправить электронное письмо с внутренним адресом. Мы протестировали внешние адреса (Gmail, Hotmail и т. Д.), И все работало нормально.

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

Это сервер говорит, что тот, кого вы указали как «RCPT TO:», недействителен.

Я бы рекомендовал вам использовать что-то вроде Wireshark для захвата SMTP-диалога между вашим кодом и сервером и проверки того, что вы отправляете то, что ожидаете, для запуска. Всегда приятно видеть, что происходит в сети, и видеть, согласуется ли это с тем, что должно происходить в вашем коде.

Если вы указываете правильного получателя, обратитесь к администратору сервера и попросите его проверить это.

Конечно, это может быть вина разработчика. Например, в спецификации сказано, что RCPT должен выглядеть так:

RCPT TO:<user@example.com>

Однако на самом деле очень распространено отправлять это:

RCPT TO: user@example.com

Большинство полнофункциональных зрелых MTA принимают последнее, хотя это не совсем правильно. Некоторые приложения (например, почтовые брандмауэры, почтовые ловушки CRM и т. Д.) Будут строго относиться к этому и возвращать ошибку.

Я не говорю, что это причина в данном случае, но это пример того, как ваш код может работать с большинством серверов, но все равно будет вашей ошибкой, если он сломается на небольшом проценте серверов.

Я согласен с рекомендацией Эвана обнюхивать трафик и понимать, что на самом деле отправляется.

Если вам интересно, это сайт сбоя сервера. Если ваш системный администратор сказал, что это код - это код. Ошибки - всегда вина разработчиков. Если вы хотите обвинить системного администратора, я слышал, что есть сайт под названием stackoverflow, который может быть более отзывчивым :)

Если серьезно, да, это код. По ошибке получатель недействителен. Каким-то образом веб-сервер пытается отправить почту на учетную запись, называемую «Учетная запись службы поддержки клиентов», все адреса электронной почты имеют формат user@domainname.suffix. Тот факт, что вы получили ошибку 550, показывает, что вы правильно подключились к целевому почтовому серверу, но нет пользователя с именем «Учетная запись службы поддержки клиентов».

Технически 550 означает невозможность ретрансляции, но я предполагаю, что вы пытаетесь отправить на внутренний почтовый ящик. Даже если вы пытаетесь ретранслировать, этот получатель не отформатирован должным образом.

Можете ли вы отправить электронное письмо на адрес электронной почты, связанный с использованием, так сказать, обычного оружия? Если да, то, вероятно, это ваш код. Если нет, то это их сервер (или, возможно, брандмауэр, который пытается подключиться к их серверу).