Ícone do site Mailtrap

Configurar Servidor SMTP – Um Tutorial Passo a Passo

Set up smtp server

No nosso post sobre os melhores servidores SMTP gratuitos, discutimos soluções baseadas em nuvem para envio de emails. Estas são bastante comuns para projetos de todos os tamanhos.

Mas e se você não quiser usar serviços de retransmissão SMTP fornecidos pelo Gmail ou seus alternativos? Neste post, vamos ensinar você a configurar um servidor SMTP local e se livrar de qualquer dependência de envio de emails.

Você realmente precisa de um servidor SMTP?

Usar um servidor SMTP de saída é o método tradicional de enviar emails. O servidor SMTP é um computador ou aplicativo que envia emails usando o Protocolo de Transferência de Correio Simples (SMTP).

Uma solução alternativa é ignorar o servidor SMTP e enviar emails diretamente para o destino. Isso é conhecido como Envio Direto (Direct Send) e pode ser usado através de programas específicos de software de email.

O Envio Direto não é muito confiável, e aqui está o porquê:

Então, vamos deixar o Envio Direto de lado e entender por que alguém gostaria de executar seu próprio servidor SMTP.

Prós e contras de um servidor SMTP local

PrósContras
Sem limite diário ou por hora no número de emails enviados
Relatórios instantâneos 
Privacidade e controle sobre todos os seus emails enviados
Sem IP compartilhado
Executar um servidor SMTP local requer tempo e esforço
A taxa de rejeição pode aumentar em 20-30%

Para resumir a comparação, aqui está um comentário que encontramos no Reddit:

Fonte: Reddit

Soluções de envio baseadas em nuvem, como o Email API/SMTP do Mailtrap, também fornecem todas as vantagens listadas acima. Tais soluções de terceiros são mais seguras, proporcionando também um controle completo sobre sua infraestrutura de email.

No entanto, elas ainda têm o fator de dependência. Portanto, se você quiser eliminar a dependência, pode, claro, configurar um servidor SMTP usando software específico.

Requisitos para um servidor SMTP local

Não há requisitos específicos até agora. No entanto, você deve estar preparado para o seguinte:

Configuração rápida de servidor SMTP

Agora, vamos ao trabalho. Como você vai configurar um servidor SMTP no seu computador, é crucial manter o sistema operacional (OS) em mente. Então, vamos explicar como configurar um servidor SMTP local em máquinas macOS, Windows e Linux.

Nota importante: Se você enviar emails de teste para o endereço de email real, pode não encontrá-los na caixa de entrada. Não se esqueça de verificar sua pasta de spam. Provedores de email como Gmail, Yahoo, Outlook e outros são suspeitos de novos agentes de transferência de correio (MTAs).

Certifique-se de fazer backup do arquivo de configuração do Postfix antes de fazer quaisquer alterações.

Como configurar um servidor SMTP local no macOS

No passado, o macOS server era um aplicativo poderoso que as pessoas usavam para gerenciar serviços de rede e, adivinhe, configurar servidores de email. Ele usava Postfix (um MTA) por padrão.

Aos poucos, a Apple reduziu os recursos do macOS Server e, em 2022, descontinuou-o completamente. O aplicativo não será mais atualizado para corresponder às novas versões do macOS.

As versões existentes do macOS Server são compatíveis com Monterey e versões anteriores do macOS. Isso significa que você ainda pode usá-lo para configurar seu servidor SMTP.

Nota: A configuração pode diferir ligeiramente dependendo da versão do OS que você está usando. No tutorial abaixo, configuraremos um servidor SMTP local no macOS Big Sur. Para versões anteriores ou posteriores do macOS, consulte o repositório do GitHub.

O Postfix deve estar pré-instalado na sua máquina. Caso contrário, você pode instalá-lo usando um gerenciador de pacotes de terceiros, como Homebrew ou MacPorts. Para Homebrew, execute o seguinte comando:

brew install postfix

Em seguida, crie um novo arquivo de configuração usando o seguinte trecho de código:

sudo nano /etc/postfix/main.cf

Se o Postfix já estiver instalado, você pode acessá-lo executando:

sudo vim /etc/postfix/main.cf

Informe ao Postfix qual nome ele deve usar para se identificar para outros servidores de email. Adicione as seguintes linhas:

myhostname = john.exemplo.com
myorigin = exemplo.com

Se o seu nome de usuário local for John, o email parecerá ser de john@exemplo.com.

Agora é hora de definir o host de retransmissão. É a máquina que aceitará emails após a autenticação e os retransmitirá para o servidor SMTP.

relayhost = mail.exemplo.com:25

O próximo passo é adicionar o IP da rede local, definir os parâmetros TLS e habilitar o SASL. Este último requer um arquivo de configuração adicional no qual a senha é armazenada.

Crie o arquivo sasl_passwd:

sudo vim /etc/postfix/sasl_passwd

Adicione a seguinte linha:

mail.exemplo.com:25 john@exemplo.com:<sua senha>

Salve o arquivo com:

sudo postmap /etc/postfix/sasl_passwd

Agora volte ao seu arquivo main.cf.

The complete code sample will look like this: 

myhostname = mailserver.my.home
myorigin = $myhostname

mydestination = $myhostname, mailserver.my.home, localhost.localdomain, localhost
relayhost = mail.exemplo.com:25
mynetworks = 127.0.0.0/8, [::1]/128

smtpd_client_restrictions = permit_mynetworks permit_sasl_authenticated permit
recipient_delimiter = +
tls_random_source = dev:/dev/urandom
smtpd_tls_ciphers = medium

inet_interfaces = all
smtpd_use_tls=yes
smtpd_tls_cert_file=/etc/certs/mailserver.my.home.crt
smtpd_tls_key_file=/etc/ssl/private/mailserver.my.home.key
smtpd_tls_security_level=may

smtp_tls_CApath=/opt/homebrew/etc/ssl/
smtp_tls_security_level=may
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache

smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated permit_inet_interfaces defer_unauth_destination
smtpd_recipient_restrictions = permit_mynetworks permit_sasl_authenticated

smtp_sasl_auth_enable = yes
smtp_sasl_password_maps =  hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous

sender_canonical_maps = hash:/etc/postfix/sender_canonical

virtual_maps = hash:/etc/postfix/virtual

home_mailbox = Maildir/

sender_dependent_relayhost_maps = hash:/etc/postfix/relayhost_map

Agora precisamos configurar o Postfix para iniciar na inicialização e reiniciá-lo. Para isso, precisamos copiar o plist master do Postfix para fora da pasta do Sistema (System).

sudo cp /System/Library/LaunchDaemons/com.apple.postfix.master.plist /Library/LaunchDaemons/org.postfix.custom.plist 

Em seguida, precisamos executar:

sudo vi /Library/LaunchDaemons/org.postfix.custom.plist

O valor de Com.apple.postfix.master deve ser substituído por org.postfix.custom.

Agora devemos remover estas linhas para evitar sair após 60 segundos:

<string>-e</string>
<string>60</string>

e adicionar estas antes de </dict>:

<key>KeepAlive</key>
<true/>
<key>RunAtLoad</key>
<true/>

É hora de reiniciar o daemon:

sudo launchctl unload /Library/LaunchDaemons/org.postfix.custom.plist
sudo launchctl load /Library/LaunchDaemons/org.postfix.custom.plist

e verificar se ele iniciou:

sudo launchctl list | grep org.postfix

Em seguida, você pode verificar a porta de escuta 25:

sudo lsof -i -P | grep LISTEN 

e verificar o log:

log stream --predicate  '(process == "smtpd") || (process == "smtp")' --info

Como configurar servidor de email SMTP no Linux

A maioria das distribuições Linux são enviadas com as duas implementações SMTP mais comuns: Sendmail e Postfix. O Sendmail tem um design bastante complexo e uma arquitetura menos segura; por isso, escolhemos o Postfix novamente.

Instalação

Se você não tiver o Postfix na sua máquina, precisará instalá-lo. Além disso, você precisará do pacote de email Mailutils, que inclui programas necessários para o funcionamento do Postfix:

sudo apt install mailutils postfix

Na janela de Configuração do Postfix, você precisará escolher a configuração de email do Internet Site. Finalmente, você precisará especificar o nome do sistema de email. Deve ser o mesmo nome que você atribuiu ao nome de domínio apontando para o seu servidor. Vamos usar exemplo.com.

Configuração

Agora, vamos configurar o Postfix para processar solicitações de envio de emails do localhost. Para isso, você precisa ajustar o arquivo de configuração principal main.cf:

sudo nano /etc/postfix/main.cf

Desça para a linha inet_interfaces = all e substitua por inet_interfaces = loopback-only. Isso dirá ao Postfix para aceitar os emails recebidos apenas no localhost.

Além disso, você precisa modificar mydestination, que especifica a lista de domínios. Deve ficar assim:

mydestination = $myhostname, localhost.$exemplo.com, $exemplo.com

Salve o arquivo e reinicie o Postfix:

sudo systemctl restart postfix

Por fim, tente enviar um email de teste:

echo "Teste de corpo de email" | mail -s "Teste de assunto de email" endereço_email_destinatário

Como configurar servidor de retransmissão SMTP local no Windows

Para configurar o servidor SMTP no Windows, você tem duas opções principais:

Instalação usando hMailServer

Baixe a versão mais recente do hMailServer e instale-a. No início da instalação, você precisa prestar atenção ao seguinte:

Uma vez instalado, é hora de executar e configurar o hMailServer.

É isso. Agora você pode enviar seu email de teste. Isso pode ser feito com PowerShell – é rápido e fácil. Para mais informações sobre isso, leia nosso post sobre envio de emails a partir do PowerShell. Execute a seguinte linha (não se esqueça de inserir seus dados):

Send-MailMessage -To "<endereço de email do destinatário>" -From "<eu endereço de email>"  -Subject "Seu assunto de email" -Body "Seu texto do corpo do email" -Credential "<seu nome de usuário>" -SmtpServer "127.0.0.1" -Port 25

Na janela pop-up, você precisará inserir sua senha e estará pronto para ir.

Instalação usando IIS

A configuração de retransmissão SMTP com IIS requer qualquer versão do Windows Server. Vamos detalhar o processo de instalação geral. Para obter detalhes sobre sua versão específica, consulte a documentação da Microsoft.

Para instalar o servidor SMTP, você precisará concluir as seguintes etapas:

Após a instalação, é necessário configurar o Servidor Virtual SMTP. Para isso, precisamos do IIS 6.0 Manager.

Depois de concluir essas etapas, você deve testar as configurações com o Telnet. Se você conseguir enviar emails com sucesso, isso significa que você tem um servidor de email SMTP funcional.

Um servidor SMTP é bom para testes?

Na maioria dos casos, as pessoas configuram servidores SMTP locais para fins de teste. Se você está desenvolvendo um aplicativo que enviará emails, precisará testar essa função, e um servidor SMTP real rodando na sua máquina local pode parecer uma boa opção. Mas, é mesmo?

Por um lado, instalar e configurar um servidor SMTP local não é complicado. No entanto, há uma solução muito melhor.

Mailtrap é uma plataforma de entrega de emails que cobre todas as suas necessidades relacionadas a emails. Ela permite que você teste, envie e controle sua infraestrutura de email através de uma única plataforma.

Em vez de longas configurações do servidor SMTP local, você pode usar o Email Testing do Mailtrap – um Sandbox de Email com um ambiente seguro para testar, inspecionar e depurar emails. Tudo isso pode ser feito em staging, o que significa que seu aplicativo pode enviar um email, mas ele não será entregue ao destinatário real.

Experimente o Mailtrap agora

Em vez disso, o email de teste irá para a caixa de entrada do Sandbox. Assim, não há risco de spam para os usuários.

A partir da caixa de entrada, é possível validar o HTML/CSS do seu email e ver rapidamente os resultados da análise de spam, que são verificados pelo filtro Apache SpamAssassin.

O processo de instalação é simples. Tudo o que você precisa fazer é atualizar suas configurações SMTP com as credenciais relevantes:

Alternativamente, você pode copiar e colar um trecho de código pronto para uso que aparece uma vez que a linguagem relevante é selecionada no menu suspenso.

Quando seu aplicativo entrar em produção, você pode usar o Email API/SMTP do Mailtrap para alcançar as caixas de entrada dos destinatários. É uma infraestrutura de email que oferece altas taxas de entregabilidade por design.

Ao contrário do servidor SMTP local, fornecemos registros DNS para os protocolos de autenticação SPF, DKIM e DMARC. Também realizamos verificações de segurança para máxima proteção e suportamos conexões criptografadas.

Depois que os emails são enviados, o Email API/SMTP permite que você acesse as suas estatísticas práticas aprofundadas (Actionable In-Depth Analytics).

Para concluir

Executar um servidor de email local pode, às vezes, ser um desafio. Um grande conhecimento e esforço são necessários para alcançar uma boa entregabilidade de email usando seu próprio servidor SMTP. É por isso que recomendamos escolher um serviço de API e SMTP, como o Email API/SMTP do Mailtrap.

Um servidor SMTP local é talvez bom para fins de teste, mas o Email Testing do Mailtrap ou outras ferramentas de teste de email farão isso melhor.

Então, você realmente precisa de um servidor SMTP local? Você é o único que pode responder a essa pergunta. Boa sorte!

Sair da versão mobile