Não é possível conectar-se ao servidor de correio remoto para enviar e-mails no ASP.NET

1

Eu quero migrar um aplicativo da Web de um Windows Server 2003 para um Windows Server 2008 R2. Tudo funciona bem, exceto o envio de e-mails do aplicativo.

Se eu configurar o aplicativo para usar o servidor smtp em "localhost", ele funciona, mas alterando-o para o nome do host "real" (por exemplo, mail.example.org) nenhum email é enviado. A mensagem de erro diz que o servidor remoto precisa de uma conexão segura ou autenticação SMTP. Mas como funciona ao usar "localhost" em vez do nome do host, duvido que esse seja o problema.

Além disso, é improvável que haja um problema com o servidor de e-mail. Também tentei com outro.

Então, para mim, parece que o firewall está bloqueando a conexão de saída para o servidor de e-mail. Eu tentei abrir a porta 25, mas ainda não funcionou. Talvez eu tenha feito do jeito errado.

Atualização: Para esclarecer minha configuração:

  • Eu tenho um Windows Server 2008 R2 com hMailServer instalado (configurado para alguns dos domínios hospedados)
  • Para o site que estou falando eu preciso usar um servidor de email externo (provedor de hospedagem totalmente diferente)

Aparentemente eu estava um pouco fora da pista. Parece que funciona ao usar a conexão com o servidor de e-mail local com o nome do host "localhost" ou "mail.somedomain.com" (enquanto o somedomain.com está configurado no meu servidor de e-mail). Mas ao usar o nome do host do servidor de email externo ("mail.externaldomain.com"), parece que ele tenta se conectar ao servidor local novamente, embora esse domínio não esteja configurado no servidor de email. Obrigado ao Evan Anderson pela dica de usar o telnet - por que eu não pensei nisso? ...: -)

Observe que o site www.externaldomain.com está hospedado no meu servidor, mas as entradas de DNS são mantidas pelo outro provedor de hospedagem. "externaldomain.com" é a única entrada que aponta para o meu servidor todos os outros registros (MX, subdomínios) estão apontando para o outro servidor.

Então eu acho que a questão é agora, como eu trago meu servidor para se conectar ao servidor de email externo. Eu tenho que configurar isso no meu servidor de email ou é uma coisa do servidor windows?

    
por Dave 13.05.2010 / 02:31

3 respostas

0

Eu finalmente resolvi o problema ... Nem o firewall nem o IIS nem o servidor de e-mail causaram o erro. Houve algumas entradas superfluentes no DNS dos meus provedores de hospedagem. Isso fez com que o aplicativo tentasse se conectar ao servidor de email local em vez do servidor remoto. Depois de excluir as entradas de DNS erradas, todas funcionaram corretamente.

O problema era que as entradas de DNS para meu domínio eram mantidas por outro provedor de hospedagem, mas como em meus provedores DNS também eram entradas para esse domínio, elas tinham prioridade para meu servidor web.

Portanto, se você encontrar problemas semelhantes, sempre pense em fazer o ping do host remoto que parece não funcionar. E não se esqueça de liberar o cache DNS de seus servidores após corrigir as entradas DNS (digite "ipconfig / flushdns" no prompt de comando)

    
por 14.05.2010 / 18:05
1

Sniff o tráfego (com o Wireshark ou Microsoft Network Monitor e veja o que realmente está acontecendo. Você provavelmente pode verificar se uma conexão TCP com o servidor de e-mail está sendo feita com um netstat -a -n 1 | find ":25" em execução em uma janela do seu servidor enquanto você tenta enviar e-mail, mas eu vou na rota do sniffer e coloco na cama.

É altamente possível que o servidor SMTP faça precisar de autenticação. Você deve executar uma transação SMTP com TELNET "à mão" apenas para ver o que está acontecendo. (Você realmente deve saber como fazer transporte SMTP via TELNET ...) Fazer isso do seu servidor terá o benefício adicional de provar que o Firewall do Windows também não está bloqueando as tentativas de conexão SMTP de saída.

Veja o tráfego no fio e chegue ao fundo do problema, em vez de cutucá-lo com um pedaço de pau.

    
por 13.05.2010 / 02:45
1

Se fosse um firewall, você não receberia a mensagem de erro recebida. Uma tentativa de conexão está sendo feita, simplesmente não é bem-sucedida. Como o antigo servidor W2K3 foi configurado para enviar e-mail para o servidor de e-mail? O servidor W2K3 estava na lista "permitido para retransmissão" no servidor de email? Se assim for, então você precisará adicionar o servidor W2K8 também. Verifique a configuração do servidor W2K3 para configurações de autenticação, etc. e defina as configurações no servidor W2K8 para corresponder.

    
por 13.05.2010 / 04:14