Este erro de SMTP pode ser a falha do desenvolvedor?

1

Eu recebi uma mensagem de erro sendo retornada para mim de um site que parece estar errado com o lado do servidor. No entanto, este servidor funciona para todos os outros sites na caixa. Existe a possibilidade de eu (Desenvolvedor) estar fazendo algo errado? Eu não tenho idéia de onde começar a rastrear isso no servidor e meu sysadmin diz que tudo parece normal:

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>

O servidor é 2003, de 64 bits e executa o Exchange 2003

O site é Asp.Net C #, usando o URL Routing

Onde eu começaria a solucionar isso?

UPDATE

Como se constata, o administrador do meu sistema rastreou o problema até uma camada de proteção contra spam. Acontece que o MIMESweeper pode estar jogando fora a mensagem, pois vê a mensagem do nosso farm de servidores da Web tentando enviar um email com um endereço interno. Nós testamos endereços externos (gmail, hotmail, etc) e funcionou bem.

Obrigado por todas as respostas. Acontece que a melhor resposta foi "Fale com o administrador do sistema" da minha perspectiva ... mas pensei em atualizar a pergunta para qualquer pessoa com algo semelhante.

    
por Armstrongest 03.06.2009 / 20:25

4 respostas

5

Esse é o servidor dizendo que quem você especificou como o "RCPT TO:" não é válido.

Eu recomendo que você use algo como o Wireshark para capturar a conversa SMTP entre o seu código e o servidor e verifique se você está enviando o que você espera ser, para o início. É sempre bom ver o que está acontecendo e ver se isso está de acordo com o que seu código diz que deveria estar acontecendo.

Se você estiver especificando o destinatário correto, entre em contato com o administrador do servidor e solicite a verificação.

    
por 03.06.2009 / 20:36
2

Claro, isso pode ser culpa do desenvolvedor. Por exemplo, a especificação diz que o RCPT deve ficar assim:

RCPT TO:<[email protected]>

No entanto, é uma prática muito comum enviar isso:

RCPT TO: [email protected]

A maioria dos MTAs maduros aceitam o último, embora não seja estritamente correto. Alguns aplicativos (como firewalls de email, coletores de mensagens do CRM, etc.) serão rigorosos e retornarão um erro.

Não estou dizendo que essa é a causa neste caso, mas é um exemplo de como seu código poderia funcionar com a maioria dos servidores, mas ainda é sua culpa se ele quebrar em uma pequena porcentagem de servidores.

Eu recomendo o Evan para farejar o tráfego e entender o que realmente está sendo enviado.

    
por 03.06.2009 / 20:54
0

Você pode enviar e-mail para o endereço de e-mail em questão usando armas convencionais, por assim dizer? Se assim for, provavelmente é o seu código. Se não, é o seu servidor (ou possivelmente um firewall que tenta smarthost para seu servidor).

    
por 03.06.2009 / 21:04
0

Caso você esteja se perguntando, este é o site serverfault. Se o seu sysadmin disse que é o código - é o código. Erros são sempre culpa dos desenvolvedores. Se você quer culpar o sysadmin eu ouvi dizer que há um site chamado stackoverflow que pode ser mais simpático:)

Com toda a seriedade, sim, é o código. De acordo com o erro, o destinatário é inválido. De alguma forma, o servidor está tentando enviar e-mail para uma conta chamada "Customer Service Account", todos os endereços de e-mail estão no formato [email protected]. O fato de você ter um erro 550 mostra que você se conectou corretamente ao servidor de e-mail de destino, mas não há um usuário chamado "Conta de Atendimento ao Cliente"

Tecnicamente, 550 significa não conseguir retransmitir, mas acredito que você esteja tentando enviar para uma caixa de correio interna. Mesmo se você estiver tentando retransmitir, esse destinatário não está formatado corretamente.

    
por 03.06.2009 / 21:21