Configurar o Revezamento SMTP do IIS para a Entrega de Emails do Office 365

O Microsoft IIS pode desempenhar muito bem o papel de um SMTP, mas requer alguns passos para ser configurado. Sorte para você, eu configurei um servidor de retransmissão SMTP do IIS e documentei todos os passos!

Neste artigo, abordaremos todos os passos necessários para configurar com sucesso um servidor de retransmissão SMTP para enviar um email de saída com o Office 365. Tecnicamente, usaremos esse servidor de retransmissão SMTP para retransmitir emails para o Office 365; ele pode funcionar da mesma forma para qualquer finalidade geral de entrega de emails por retransmissão SMTP.

Pré-requisitos

Para configurar o IIS e seguir comigo, certifique-se de ter uma máquina com o Windows Server 2016 disponível. Também assumirei que você está conectado ao servidor como administrador.

Instale o recurso de servidor SMTP do IIS

A primeira tarefa que você precisará fazer para configurar uma retransmissão SMTP do IIS é instalar o servidor SMTP do IIS. Você precisará instalar o recurso de Servidor SMTP do Windows.

Usando o Gerenciador do Servidor

Se você não está familiarizado com a instalação de recursos do Windows via Gerenciador do Servidor, confira este artigo intitulado Instalar ou Desinstalar Funções, Serviços de Funções ou Recursos.

Usando o PowerShell

A instalação do recurso de servidor SMTP remove muitos cliques. Abra um console do PowerShell como administrador e execute a linha abaixo:

PS51> Install-WindowsFeature -Name SMTP-Server -IncludeAllSubFeature -IncludeManagementTools -Restart

Aguarde a conclusão da instalação. Deve ver uma saída semelhante a esta.

Installing the SMTP-Server Windows feature with PowerShell

Importe um certificado (apenas para TLS)

Se pretender enviar e-mails via TLS (Office 365), precisa de importar um certificado SSL na loja de certificados pessoais da máquina local do servidor antes de configurar o Servidor SMTP do IIS. Pode ignorar este passo se o seu relé SMTP do Office 365 não usar TLS.

Se não tiver um certificado, pode obter um através da sua PKI interna (se tiver) ou de um certificado público usando serviços como LetsEncrypt, Digicert, etc.

Depois de obter o certificado, precisará de o importar na loja de certificados pessoais da máquina local. Se não estiver familiarizado com a importação de certificados usando o MMC de Certificados, consulte Importar e Exportar Certificado – Microsoft Windows.

Quando for bem-sucedido, deverá obter uma janela de confirmação como esta. Clique em OK (1) para confirmar.

Successful certificate import

De volta à janela principal do console, atualize a pasta Pessoal > Certificados e deverá conseguir ver o certificado importado.

Valide o Certificado

Uma vez importado, certifique-se de verificar se a cadeia de certificados está completa e se não há erros. Se tudo estiver bem, você deverá ser capaz de abrir o certificado e ver que o campo Validade a partir de está atualizado e que há uma chave privada associada ao certificado. Um exemplo é mostrado abaixo.

Validating certificate

Na guia Caminho de Certificação, você também deve ver um Estado do Certificado indicando que o certificado está OK, conforme mostrado abaixo.

Certificate status stating that the certificate is OK

Configure o Servidor SMTP do IIS

Você instalou com sucesso o servidor SMTP até este ponto. Mas antes de poder usá-lo, as configurações do servidor devem ser configuradas primeiro.

O servidor SMTP está sendo executado no modo de compatibilidade com o IIS6 e não vem com suporte integrado ao PowerShell. Isso significa que você configurará as configurações manualmente usando o Console de Gerenciamento do IIS6.

Vá para Iniciar -> Executar e digite inetmgr6 e pressione Enter. Isso abrirá o console do IIS 6.

Assim que o console estiver aberto, clique com o botão direito em [Servidor Virtual SMTP #1] (1), então selecione Propriedades (2).

Checking SMTP Virtual Server properties

Na janela Propriedades, marque Ativar registro (1), então clique em Propriedades (2).

Enabling logging

Vá para a guia Avançado e marque todas as caixas na lista (1), então clique em OK (2).

Checking advanced options

Voltando à janela Propriedades, vá para a guia Entrega e clique em Avançado (1).

Clicking Advanced button on Delivery tab

Na janela Entrega Avançada, digite o Nome de domínio totalmente qualificado (1) que você gostaria de usar para o servidor de correio SMTP de destino. Não precisa ser o mesmo que o FQDN do próprio computador. Se estiver configurando este servidor SMTP para uso com o Office 365, no campo Host inteligente (2) , defina o seu ponto de extremidade MX do Office 365 e clique em OK (3).

Setting smart host

Adicionar IPs Permitidos no Servidor SMTP do IIS

Agora, se tiver um dispositivo que deseja testar, deve adicionar primeiro o seu endereço IP às restrições de relay. Para este exemplo, o endereço IP 192.168.0.3 será adicionado às restrições de relay. Este endereço IP pertence a um computador que está na mesma rede que o servidor.

Para adicionar um IP permitido nas restrições de relay, vá para a guia Acesso e clique em Relay (1).

Relay button on Access tab

Dentro da janela Restrições de Relay, clique em Adicionar (1).

Adding a relay restriction

Em seguida, digite o endereço IP (1) que deseja permitir e clique em OK (2).

Restricting relay to only a single IP

Voltando à janela Restrições de Relay, confirme que o endereço IP foi adicionado à lista, e então clique em OK (1) e OK para sair da janela de propriedades.

Confirming new relay restriction

Confirmar que o Certificado é Detectado pelo Servidor SMTP e Habilitar Criptografia TLS

Se o seu servidor de relay estiver enviando emails de saída via TLS, você precisará confirmar se o certificado é detectado pelo Servidor SMTP do IIS e habilitar a criptografia TLS.

Na guia Acesso das propriedades do Servidor SMTP, você deverá ver uma mensagem indicando “Um certificado TLS foi encontrado com data de validade: XXXXXX”. Se isso acontecer, está tudo pronto.

Inspecting TLS certification expiration date

Em seguida, clique na guia Entrega, clique em Segurança de Saída (1), marque a caixa de seleção Encriptação TLS (2), clique em OK (3).

Setting TLS encryption on outbound email

Isso conclui as etapas de configuração do Servidor SMTP do IIS.

Teste o Servidor de Relay de Email SMTP do IIS

Neste ponto, seu Servidor SMTP deve estar configurado e pronto para começar a retransmitir emails. O próximo passo é testá-lo. Você deve testar agora o envio de emails através do relay SMTP para confirmar se o servidor SMTP receptor recebe a mensagem.

Teste com o Diretório de Coleta

Quando o Servidor SMTP do IIS é instalado, ele criará uma pasta no servidor em C:\inetpub\mailroot\Pickup. Este diretório é onde o serviço SMTP pega os emails recém-enviados para processamento antes de movê-los para o diretório Fila.

Para testar usando este método, crie um arquivo de texto simples com conteúdo semelhante a este:

From: myname@yourdomain.com
To: someone@somedomain.com,someone@NotYourDomain.com
Subject: testing Pickup directory
This is the test message body.

Não se esqueça de alterar os valores De e Para para os seus próprios.

Agora salve este arquivo em algum lugar que não seja o diretório de coleta como mail.txt.

Depois de salvar o arquivo, copie e cole o arquivo na pasta C:\inetpub\mailroot\Pickup. Se for bem-sucedido, o arquivo deverá desaparecer rapidamente. Isso significa que o serviço SMTP o pegou e começou a processar a mensagem.

Após alguns segundos a um minuto, você deverá receber o email enviado para o endereço de email especificado definido em mail.txt.

Teste com PowerShell

Neste teste, você usará o PowerShell do computador cujo endereço IP você adicionou na seção Adicionar IPs Permitidos no Servidor SMTP do IIS.

Abra um console do PowerShell e copie/cole o código abaixo. Certifique-se de editar os valores dos parâmetros From, To e SmtpServer. Dependendo de como você configurou o servidor de retransmissão acima, você pode usar um dos exemplos abaixo para testar uma configuração com ou sem TLS.

## Construir os parâmetros da mensagem
$mailParams = @{
    SmtpServer                 = 'smtp.server.here'
    Port                       = 25
    #UseSSL = $true   
    From                       = '[email protected]'
    To                         = '[email protected]', '[email protected]'
    Subject                    = ('ON-PREM SMTP Relay - ' + (Get-Date -Format g))
    Body                       = 'This is a test email using ON-PREM SMTP Relay'
    DeliveryNotificationOption = 'OnFailure', 'OnSuccess'
}
<# Enviar a mensagem #>
Send-MailMessage @mailParams

Resumo

Neste artigo, você aprendeu como configurar um servidor de retransmissão SMTP do IIS para entrega de emails de destinatários do Office 365. Cobrimos a configuração de um servidor SMTP com e sem TLS usando uma combinação de GUI e PowerShell. Em seguida, testamos nossa configuração usando o PowerShell para confirmar que tudo está funcionando corretamente.

Leitura adicional

Source:
https://adamtheautomator.com/iis-smtp-relay/