16 Março 2016

Envio de email em máquina virtual via smtp deixa de funcionar

Em primeira instância para despiste do erro comecei por executar a seguinte query sobre a base de dados msdb que me permitiu visualizar o log de todas as tentativas que estava a fazer de envio de email:

select *

from sysmail_event_log

order by 1 desc

Donde verifiquei que o erro era:

“The mail could not be sent to the recipients because of the mail server failure. (Sending Mail using Account 8 (2015-12-20T23:14:43). Exception Message: Cannot send mails to mail server. (Failure sending mail.).)”

Próximo passo validar o servidor SMTP …

Para fazer isso fui ao IIS6

Propriedades do servidor SMTP

Destes passos verifiquei que no separador Access, na opção “Connection” estaria a bloquear todos os IPs com exceção do suposto IP da meu servidor.

Parecia estar tudo correto, mas por via das dúvidas decidi tentar selecionar “All except the list below” e tentar enviar um novo email de teste. Após executar este último passo verifiquei que conseguia novamente enviar emails sem qualquer tipo de problema!

Causa deste problema:

O meu servidor é uma máquina virtual Azure que não tem um IP interno dinâmico. Quando fiz um reiniciar ao servidor o IP interno mudou, e consequentemente os processos não estariam a conseguir aceder ao servidor SMTP.

Solução 1: Manter a opção que qualquer computador conseguirá aceder ao servidor SMTP

Solução 2: Mudar as propriedades da máquina virtual para utilizar um IP estático em detrimento do dinâmico e voltar a colocar a opção “Only the list below”

Solução 3: Selecionar a opção “Only the list below” mas sobre um dominio em detriment de IP

.

.

.

.

     André Marques
           Manager
Business Development
Blog