Acho que a declaração referenciada da Microsoft é simplesmente terrível e completamente confusa e eu não acho que quem a escreveu tenha alguma pista sobre como o servidor SMTP funciona. Isso não explica por que ele está obsoleto ou se alguma coisa está errada. Talvez existam problemas de segurança ou estouro de buffer, mas se você não estiver expondo isso em uma porta pública, não hesitarei em usá-lo.
Veja o que eu faço:
- No IIS, configurei 'Email SMTP' para o domínio apontar para
10.0.0.1
. Eu faço isso na pasta pai para qualquer site implantado ou então ele será apagado quando você reimplantar. Se você quiser, pode colocá-lo diretamente no web.config, mas é menos flexível assim. - No servidor SMTP (por meio do Console de Gerenciamento do IIS6), configurei um servidor SMTP em
10.0.0.1
. Obviamente, como eu disse antes, isso não está exposto na internet pública. - Eu configuro este servidor para retransmitir através de um host inteligente via
smtp.gmail.com
ousmtp.live.com
- No meu aplicativo .NET, uso a API de email para enviar uma mensagem usando um
new SmtpClient()
. Isso pega a configuração do IIS e envia o email para o meu servidor SMTP em10.0.0.1
-
Quando eu mando um e-mail, ele retorna instantaneamente porque está apenas sendo enviado para o localhost
-
Agora, esse é o benefício importante de usar um servidor SMTP local que não pode ser subestimado e para o qual 'System.Net.Smtp' em si não é substituto :
- O servidor SMTP tentará retransmitir o email pelo seu host inteligente e, se ele não puder enviá-lo imediatamente, tentará novamente mais tarde.
- É importante perceber que às vezes até
smtp.gmail.com
não responde ou talvez sua rede esteja inativa. (Surpreendentemente comum quando eu tentei enviar email diretamente) - Sem um servidor SMTP intermediário para armazenar as mensagens, você não pode apenas 'enviar e esquecer' do .NET e você teria que descobrir algum tipo de mecanismo de repetição que é completamente desnecessário com um servidor SMTP que faz tudo para você
- Acredito que, se você tiver um limite de retransmissão SMTP (no seu provedor / GMail), o servidor SMTP continuará tentando novamente e enviará as mensagens no dia seguinte - outro grande benefício se você tiver tráfego inconsistente no dia a dia ou você limita sem perceber.
Vá em frente e use-o. A Microsoft não forneceu um substituto e é gratuito, então por que não? 'Reprovado' não significa nada na minha opinião se não houver substituto.
Aviso: Ainda estou no Server 2008, mas presumo que tudo isso ainda se aplica.