O que substitui o servidor SMTP do IIS no Windows Server 2012

29

Eu li as anotações aqui link sobre os recursos removidos e removidos no Windows 2012 e diz que o SMTP está obsoleto. Eu suponho que isso está se referindo ao servidor SMTP do IIS. O conselho é usar System.Net.Smtp em vez disso, mas eu assumo que isso é um erro de impressão porque não consigo encontrar nenhuma referência em outro lugar para nada chamado System.Net.Smtp.

Se eles realmente quisessem dizer System.Net.Mail, isso é apenas uma API e não consigo ver como uma API substitui um processo do servidor. Eu preciso de um serviço que aceite conexões na porta 25 e direcione o email para o destino, como o IIS SMTP costumava fazer.

Alguém pode esclarecer a situação aqui, por favor? Se eles tivessem dito que foi substituído pelo Exchange, então eu os amaldiçoaria, mas pelo menos isso seria uma declaração significativa a ser feita, enquanto o atual definitivamente não é.

    
por Andy 06.12.2012 / 15:40

3 respostas

19

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 ou smtp.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 em 10.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.

    
por 08.02.2013 / 03:15
14

O recurso SMTP da função Servidor da Web foi reprovado, mas não foi removido. Você pode instalá-lo e usá-lo, mas é recomendável usar outro servidor SMTP (externo).

SMTP and the associated management tools are deprecated. Though the functionality is still available in Windows Server 2012, you should begin using System.Net.Smtp. With this API, you will not be able to insert a message into a file for pickup; instead configure Web applications to connect on port 25 to another server using SMTP.

Assim, no futuro, você instalaria e usaria um servidor SMTP separado (do qual há muitos disponíveis) para fornecer serviços SMTP a aplicativos da Web em execução no Windows ServerX.

    
por 06.12.2012 / 16:01
5

Essa descrição no artigo ao qual você está vinculado é terrível! Mas aqui está o que está tentando te dizer:

Ativar o IIS SMTP nas versões anteriores do Windows fez duas coisas:

  1. Iniciou um servidor SMTP do IIS.
  2. Adicionadas bibliotecas de programação (ou seja, objetos COM, etc.) para o envio de mensagens.

Se você usasse essas bibliotecas sem nenhuma configuração, elas seriam enviadas ao servidor SMTP do IIS local. Programadores são inerentemente preguiçosos, então desde que funcionou com o mínimo de esforço da parte deles, foi o que eles fizeram. E muitos não forneceram uma maneira de enviar e-mails através de um servidor SMTP diferente.

O que o artigo deve dizer é que o servidor SMTP do IIS não existe mais, mas as bibliotecas SMTP ainda são fornecidas e o aplicativo deve ser configurado para usar um servidor SMTP diferente.

    
por 06.12.2012 / 15:58