Configurar o Revezamento SMTP do IIS para Entrega de Email no 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 no IIS e documentei todos os passos!

Neste artigo, vamos cobrir todos os passos necessários para configurar com sucesso um servidor de retransmissão SMTP para enviar um e-mail de saída com o Office 365. Tecnicamente, vamos usar esse servidor de retransmissão SMTP para retransmitir e-mails para o Office 365; ele também pode funcionar rapidamente para qualquer propósito geral de entrega de e-mail de retransmissão SMTP.

Pré-requisitos

Para configurar o IIS e acompanhar-me, certifique-se de ter uma máquina Windows Server 2016 disponível. Também vou supor 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 no IIS é instalar o Servidor SMTP do IIS. Você precisará instalar o recurso Servidor SMTP do Windows.

Usando o Gerenciador do Servidor

Se não estiver 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ção ou Recursos.

Usando o PowerShell

A instalação do recurso do 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

Espere a instalação terminar. Você deverá ver uma saída semelhante a esta.

Installing the SMTP-Server Windows feature with PowerShell

Importe um certificado (apenas para TLS)

Se você estiver enviando e-mails via TLS (Office 365), precisará importar um certificado SSL na loja de certificados pessoais da máquina local do servidor antes de configurar o servidor SMTP do IIS. Você pode pular esta etapa se o seu retransmissor SMTP do Office 365 não usar TLS.

Se você não tiver um certificado, pode obter um por meio de sua PKI interna (se tiver) ou um certificado público usando serviços como LetsEncrypt, Digicert, etc.

Depois de obter o certificado, será necessário importá-lo na loja de certificados pessoais da máquina local. Se não souber como importar certificados usando o MMC de Certificados, confira Importar e Exportar Certificado – Microsoft Windows.

Ao concluir com êxito, você deverá ver uma janela de confirmação como esta. Clique em OK (1) para confirmar.

Successful certificate import

Voltando à janela principal do console, atualize a pasta Pessoal > Certificados e você deverá ver o certificado importado.

Valide o Certificado

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

Validating certificate

Na guia Caminho da Certificação, você também deve ver um Status 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),  em seguida, selecione Propriedades (2).

Checking SMTP Virtual Server properties

Na janela de Propriedades, marque Habilitar log (1), depois clique em Propriedades (2).

Enabling logging

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

Checking advanced options

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

Clicking Advanced button on Delivery tab

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

Setting smart host

Adicione IPs Permitidos no Servidor SMTP do IIS

Agora, se você tiver um dispositivo que deseja testar, é necessário adicionar primeiro o endereço IP às restrições de retransmissão. Para este exemplo, o endereço IP 192.168.0.3 será adicionado às restrições de retransmissão. 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 retransmissão, vá para a guia Acesso e clique em Relé (1).

Relay button on Access tab

No interior da janela de Restrições de Relé, 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

De volta à janela de Restrições de Relé, confirme que o endereço IP foi adicionado à lista e clique em OK (1) e OK para fechar a janela de propriedades.

Confirming new relay restriction

Confirme se o Certificado é Detectado pelo Servidor SMTP e Ative a Criptografia TLS

Se o seu servidor de retransmissão estiver enviando e-mails de saída via TLS, você precisará confirmar se o certificado é detectado pelo Servidor SMTP do IIS e ativar a criptografia TLS.

Na guia Acesso das propriedades do Servidor SMTP, você deverá ver uma mensagem informando “Um certificado TLS foi encontrado com data de validade: XXXXXX”. Se sim, 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 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 Relevo 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 agora testar o envio de email através do relé SMTP para confirmar que o servidor SMTP receptor recebe a mensagem.

Testar 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-submetidos 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 bem-sucedido, o arquivo deve 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 e-mail enviado para o endereço de e-mail especificado definido em mail.txt.

Teste com PowerShell

Neste teste, você usará o PowerShell do computador cujo endereço IP foi adicionado 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 para os parâmetros From, To e SmtpServer. Dependendo de como você configurou o servidor de retransmissão acima, você pode usar qualquer um dos exemplos abaixo para testar uma configuração com ou sem TLS.

## Construa 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'
}
<# Envie a mensagem #>
Send-MailMessage @mailParams

Resumo

Neste artigo, você aprendeu como configurar um servidor de retransmissão SMTP do IIS para entrega de e-mails do Office 365. Cobrimos a configuração tanto de um servidor SMTP sem TLS quanto com TLS usando uma combinação de GUI e PowerShell. Em seguida, testamos nossa configuração usando PowerShell para confirmar se está tudo bem.

Leitura Adicional

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