Configurando o Zoho Mail como SMTP Relay no Postfix via Stunnel

Zoho Mail é um serviço de emails corporativos gratuito que permite enviar e receber mensagens em domínios customizados. Publicamos recentemente um tutorial de como cadastrar-se e usar a ferramenta, clique aqui para ler o artigo.

A conta gratuita permite adicionar um domínio e ter até 10 caixas de email com 5Gb cada, e tem uma limitação de até 200 emails diários por domínio (para domínios com menos de 4 usuários ativos o limite é de 50 emails por usuário/dia), o que é mais do que suficiente para a maioria dos sites poderem comunicar-se com seus usuários/clientes.

O painel de acesso deles é fácil de operar e está parcialmente traduzido para o português. E a URL de acesso ao painel pode ser alterada para domínios personalizados, ao invés de mail.zoho.com. Clique aqui e veja como fazer.

Porém uma questão é como fazer para enviar emails através de scripts PHP ou formulários de contato do WordPress, uma vez que você teria que estar logado no painel do Zoho para fazer envios. Neste caso você pode configurar a função mail() do PHP para usar um SMTP externo, ou no caso do WordPress, usar um plugin que envia por SMTP externo, clique aqui e veja como instalar e usar o plugin.

Neste tutorial mostrarei uma outra alternativa, configurando o Zoho Mail como SMTP Relay externo, e de forma seletiva, configurar contas de email para usar o serviço.

DICA: Após configurar e entender este tutorial você poderá extender as funcionalidades de uso dos serviços de email no servidor VPS. Por exemplo, pode-se desativar as entradas MX do Zoho na tabela DNS e adicionar um registro MX do próprio servidor configurando o RoundCube para receber os emails, utilizando o Zoho via SMTP Relay para enviar os emails (pode-se inclusive enviar mensagens de um cliente de email para o servidor que elas serão encaminhadas pela conta do Zoho). Parece meio confuso num primeiro momento mas será mais fácil de entender após tudo configurado.

Instalando o Stunnel 4:

* Este tutorial foi testado em nosso servidor Debian 7 com ISPConfig 3 e Postfix, clique aqui e veja como instalar.

1 Instale e configure o Stunnel:

A Baixe os pacotes com apt-get (na pergunta se deseja continuar tecle ENTER)

apt-get install stunnel

B Configure os arquivos.

Edite o arquivo /etc/default/stunnel4 e altere a linha 6 conforme abaixo:

# Change to one to enable stunnel automatic startup

ENABLED=1

Crie e edite o arquivo /etc/stunnel/stunnel.conf (pode-se editá-lo com o Notepad++ como mostramos neste tutorial), adicionando as seguintes linhas de código:

> touch /etc/stunnel/stunnel.conf

pid = /var/run/stunnel.pid
[smtp-tls-wrapper]
client=yes
accept=11125
connect = smtp.zoho.com:465

* No código acima confguramos a porta 11125 para aceitar conexões repassando as requisições para a porta 465 (SSL) do Zoho, criando um túnel criptografado e enviando o email como se estivéssemos no servidor do Zoho Mail.

C Libere as portas no firewall do ISPConfig. Se você seguiu nosso tutorial de segurança saberá onde encontrar o Firewall, ou acesse “Sistema / Firewall / Adicionar registro de firewall“, na lista de portas TCP liberadas adicione a 465 e a 11125 desta forma:

20,21,22,25,53,80,110,143,443,465,587,993,995,3306,8080,8081,10000,11125

D Reinicie o serviço Stunnel:

/etc/init.d/stunnel4 restart

E Instale o cliente Telnet no servidor e teste se o túnel SSL está funcionando:

> apt-get install telnet

> telnet localhost 11125

* Se a última linha da resposta for “220 mx.zohomail.com SMTP Server ready” então a conexão está ok. Para sair do Telnet pressione as teclas “CTRL + ]” e em seguida digite quit e ENTER.

2 Configure o Postfix para enviar os emails por SMTP Relay:

* Já configuramos um serviço de SMTP Relay nesse tutorial, o que mostraremos abaixo é um resumo definido para este artigo somente.

A Edite o arquivo /etc/postfix/main.cf e modifique/adicione as seguintes linhas (os números das linhas são referentes ao arquivo original, se você alterou o arquivo por algum motivo encontre-as):

# Linha 23:

smtpd_use_tls = yes
# Linhas 34 e 35:

mydestination = zoho.com, vps.fatorbinario.com, localhost, localhost.localdomain
relayhost = [127.0.0.1]:11125
# Adicione estas linhas ao final (lembre-se de deixar uma linha vazia no final do arquivo para prevenir problemas):
#Ativar o SASL para autenticação externa

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

B Em seguida edite o arquivo /etc/postfix//sasl_passwd:

* Se o arquivo ainda não existir crie ele com o comando abaixo, mas só faça isso se ele NÃO EXISTIR ou você poderá danificar outras configurações:

> touch /etc/postfix/sasl_passwd

Dentro do arquivo adicione as linhas com todas as contas de email no Zoho e suas respectivas senhas que deseja enviar email por relay (digitando a mesma senha cadastrada para o usuário no painel do Zoho):

[127.0.0.1]:11125 [email protected]:SENHA_DO_CONTATO
[127.0.0.1]:11125 [email protected]:SENHA_DO_SUPORTE

C Grave o arquivo e execute o postmap do Postfix para o arquivo:

> postmap /etc/postfix/sasl_passwd

3 Configurando o RelayHostMaps para enviar emails do servidor seletivamente:

* Esse passo era opcional no outro tutorial mas colocarei aqui como obrigatório, desta forma todos os emails que não estiverem cadastrados no painel do Zoho ou forem de outro domínio no mesmo VPS poderão ser enviados sem problemas pelo servidor via Postfix sem relay.

A Crie e edite o arquivo /etc/postfix/relayhosts_maps (lembre-se de verificar se o arquivo já existe, se não existir crie ele com o comando “touch /etc/postfix/relayhosts_maps). Dentro do arquivo digite a lista de emails que deseja enviar por relay:

[email protected] [127.0.0.1]:11125
[email protected] [127.0.0.1]:11125

B Execute o comando postmap:

> postmap /etc/postfix/relayhosts_maps

C E por último altere a linha 35 do arquivo /etc/postfix/main.cf, adicionando uma outra de “sender_dependent” logo abaixo desta forma:

# Comente a linha 35 e adicione outras 2 logo abaixo

#relayhost = [127.0.0.1]:11125

#Para usar relay somente em alguns emails (note que relayhost terá um valor em branco)
relayhost = 
sender_dependent_relayhost_maps = hash:/etc/postfix/relayhost_maps

D Reinicie o Postfix:

> /etc/init.d/postfix restart

Enviando e recebendo emails:

Com as configurações acima podemos usar o servidor para envios de forma seletiva através do Zoho, sendo desnecessário uma configuração para recuperá-las do servidor do Zoho pois podemos, ou fazer uma requisição POP3, ou simplesmente deletar as entradas MX do Zoho na tabela DNS (adicionando uma entrada MX do próprio servidor), assim os emails que chegarem serão entregues diretamente no VPS, sendo que desta forma podemos logar no RoundCube e enviar/receber emails nas contas.

Uma segunda alternativa é deixar as entradas MX do Zoho na tabela DNS e logar no painel da conta com uma URL personalizada para o domínio como explicamos acima. Assim poderemos enviar emails do servidor de forma complementar como já falamos, em casos onde os emails são enviados por algum programa específico ou formulário de contato. Os emails enviados por Stunnel ficarão gravados em “Emails Enviados” dentro da conta no Zoho Mail.

Para configurar envios por um cliente de email como Outlook ou Thunderbird use o protocolo SMTP na porta 587 com TLS ou na porta 465 com SSL, as requisições das contas listadas nas configurações serão redirecionadas para a porta 465 do Zoho Mail.

©2014-2024 Fator Binário - Todos os direitos reservados

Fazer login com suas credenciais

Esqueceu sua senha?