Configurar Servidor SMTP – Um Tutorial Passo a Passo

On junho 25, 2024
11min read
Zakhar Yung Technical Content Writer @Mailtrap
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ê:

  • Não pode ser usado se a porta 25 estiver bloqueada pelo seu Provedor de Serviços de Internet (ISP).
  • Não é adequado para envio de emails em massa devido às múltiplas conexões com muitos servidores diferentes.
  • Não pode enviar emails não-personalizados.
  • Pode ser bloqueado por filtros de email porque os emails não são enviados de um servidor SMTP regular.

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:

Comentário no Reddit sobre como é difícil configurar um servidor SMTP

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:

  • Alguns ISPs podem bloquear a porta 25. Você pode resolver esse problema entrando em contato com seu provedor de ISP e descobrindo quais limitações eles podem impor. Além disso, você precisa solicitar o servidor DNS correto e permissão para resolução de registro MX.
  • Para emails em massa, você deve provavelmente optar por um domínio e um endereço IP fixo associado a ele – isso aumentará sua resistência aos filtros de spam.

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:

  • Usar opções de software como MailEnable, Apache James ou hMailServer. Neste tutorial, incluiremos etapas para hMailServer, pois é a opção mais popular;
  • Usar os Serviços de Informação da Internet do Windows (IIS) no servidor BizTalk ou outros servidores com IIS instalado.

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:

  • Na janela Select Components, certifique-se de que a instalação completa esteja escolhida. Componentes de servidor e administrativos devem estar marcados.
  • Na janela Select database server type, marque o mecanismo de banco de dados incorporado.
  • Na janela hMailServer Security, crie uma senha para o usuário padrão.

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

  • Clique em ‘Connect’ na janela inicial e insira a senha que você configurou durante a instalação.
  • Clique em ‘Add domain’ e insira o nome do seu domínio no campo correspondente. A propósito, você pode usar um nome de domínio falso, pois o real não é necessário para enviar emails. Mas, nesse caso, certifique-se de que o domínio falso não exista de fato. Clique em ‘Save’ e você verá seu domínio criado na aba à esquerda.
  • Selecione a pasta ‘Accounts’ na aba à esquerda e clique em ‘Add…’ para configurar uma. Tudo o que você precisa fazer aqui é inserir um nome no campo ‘Address’. Isso configurará seu endereço de email. Opcionalmente, você pode especificar uma senha. Clique em ‘Save’ e vá para ‘Settings’ na aba à esquerda.
  • Expanda o thread ‘Settings’ e selecione ‘Protocols’. Desmarque POP3 e IMAP. Para mais informações sobre esses protocolos, leia nosso post de comparação IMAP vs POP3 vs SMTP. Em seguida, clique em ‘Save’.
  • Agora, selecione ‘Advanced’ no thread ‘Settings’ e insira localhost no campo ‘Default domain’ na aba direita. Clique em ‘Save’. Para terminar as configurações avançadas, selecione ‘Auto-ban’ e desmarque a caixa ‘Enabled’. Clique em ‘Save’.
  • No final, expanda o thread ‘Utilities’ e selecione ‘Diagnostics’. Selecione seu domínio para executar testes e clique em ‘Start’. Não estamos interessados em todos os testes, apenas em ‘Collect server details’ e ‘Test outbound port’. Esses devem estar marcados em verde.

É 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:

  • Acesse seu ‘Server Manager’ e selecione ‘Dashboard’ na barra de navegação à esquerda;
  • Escolha ‘Add roles and features’ para iniciar o assistente. Isso permitirá que você estenda a funcionalidade do servidor e configure-o para realizar tarefas específicas;
  • Você verá a janela ‘Before you begin’, que inclui informações importantes de instalação. Pressione ‘Next’;
  • Escolha ‘Role-based or feature-based installation’ e pressione ‘Next’ para continuar com o processo de configuração;
  • A próxima etapa é selecionar o servidor que você deseja usar para a instalação do SMTP. Nesta etapa, você pode selecionar os servidores que adicionou anteriormente. Um servidor local é a opção padrão aqui;
  • Em ‘Server roles’, você pode pressionar ‘Next’ sem escolher nenhuma opção;
  • A aba ‘Features’ é o lugar onde selecionamos o servidor SMTP. Você pode ser solicitado a configurar recursos adicionais do servidor. Clique em ‘Next’;
  • Uma vez feito isso, você verá a janela de confirmação. Marque ‘Restart the destination server automatically if required’ para garantir que o servidor reinicie após a instalação. Isso iniciará a instalação. Pressione ‘Close’ quando o processo estiver concluído.

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

  • O primeiro passo é abrir o IIS Manager. Pode ser feito pesquisando inetmgr6.exe no Iniciar ou acessando o Server Manager e escolhendo ‘IIS Manager’ na aba Ferramentas;
  • Expanda o nome do computador para mostrar uma visualização em árvore do servidor. Clique com o botão direito do mouse no ‘SMTP Virtual Server #1’ e escolha ‘Properties’;
  • Escolha o botão ‘Relay’ na aba Access para modificar as configurações de retransmissão do seu servidor SMTP;
  • O próximo passo é escolher os endereços IP que serão permitidos para retransmissão através deste servidor SMTP. Para conceder acesso apenas ao seu computador, pressione ‘Add’, digite ‘127.0.0.1’ e pressione ‘OK’. Para adicionar outros computadores, você precisará inserir seus endereços IP. Marque ‘Enable logging’ para receber registros de mensagens de email para fácil resolução de problemas;
  • Vá para a aba Delivery, selecione ‘Outbound Security’ e escolha entre os métodos de autenticação. Você tem quatro opções: Acesso anônimo, autenticação básica, autenticação integrada do Windows e criptografia TLS. Se você estiver usando o servidor para fins de teste, é recomendável usar acesso anônimo para garantir que a configuração não falhe no comando AUTH;
  • Na mesma aba, escolha ‘Outbound connections’. A porta TCP ou SMTP padrão é 25. Você deve garantir que não esteja bloqueada. Se você usar qualquer outra porta, deve verificar se está aberta no seu firewall;
  • Agora selecione ‘Advanced’ para expandir as opções avançadas do seu Servidor Virtual SMTP. Tipicamente, os Nomes de Domínio Totalmente Qualificados serão listados aqui. Você deve deixar o campo Smart Host vazio. Lembre-se de que alguns provedores de rede podem exigir o Smart Host – um servidor que lidará com a entrega;
  • Pressione ‘OK’ e reinicie o servidor para aplicar as configurações.

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.

Mailtrap Email Testing - Página de Análise de Spam

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

  • Host: sandbox.smtp.mailtrap.io
  • Porta: 25 ou 465 ou 587 ou 2525
  • Nome de usuário: único para cada caixa de entrada
  • Senha: única para cada caixa de entrada

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.

Integração da API de Teste de Email Mailtrap

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!

Article by Zakhar Yung Technical Content Writer @Mailtrap