Мне возвращается сообщение об ошибке с веб-сайта, которое может показаться неправильным на стороне сервера. Однако этот сервер работает со всеми остальными сайтами в коробке. Есть ли вероятность, что я (разработчик) делаю что-то не так? Я понятия не имею, с чего начать отслеживать это на сервере, и мой системный администратор говорит, что все выглядит нормально:
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 означает невозможность ретрансляции, но я предполагаю, что вы пытаетесь отправить на внутренний почтовый ящик. Даже если вы пытаетесь ретранслировать, этот получатель не отформатирован должным образом.
Можете ли вы отправить электронное письмо на адрес электронной почты, связанный с использованием, так сказать, обычного оружия? Если да, то, вероятно, это ваш код. Если нет, то это их сервер (или, возможно, брандмауэр, который пытается подключиться к их серверу).