Introdução à automação de e-mails Mailgun


O Mailgun é um serviço de automação de e-mail oferecido pela Rackspace. Ele oferece um serviço completo de e-mail baseado em nuvem para enviar, receber e controlar e-mails enviados por meio de seus sites e aplicações. As características do Mailgun estão disponíveis por uma API RESTful intuitiva ou por protocolos de e-mail tradicionais como o SMTP.

Com o plano básico do Mailgun, os clientes do Rackspace Cloud podem enviar gratuitamente 50.000 e-mails por mês. A partir de julho de 2013, as imagens de Windows e Linux para Cloud Servers serão pré-configuradas pela Rackspace com Operações Gerenciadas, que possibilitará o envio de e-mails pelo Mailgun, utilizando um servidor SMTP.

O Mailgun destaca-se por sua diversidade de casos de uso. O Mailgun pode integrar-se a um serviço local de postfix, bem como enviar e-mails por SMTP e integrar-se automaticamente com suas aplicações de nuvem existentes. Por exemplo, o Mailgun, quando adequadamente configurado, pode entregar e-mails a partir de um sistema de gerenciamento de conteúdo (CMS) para software de blogs como o WordPress, além de integrar-se com software para rastreamento de bugs ou com qualquer software de código aberto que precise enviar e-mails. O Mailgun também pode ser usado para gerenciar e-mails recebidos.

Os clientes do Rackspace Cloud podem acessar o Mailgun diretamente no painel de controle cloud, conforme exibido abaixo. Para enviar mais do que os 50.000 e-mails gratuitos/mês disponíveis no plano básico, você precisará escolher um plano pago no painel de controle do Mailgun.

Para mais informações sobre os preços do Mailgun para clientes Rackspace, visite a página de preços da Rackspace.

Este artigo apresenta exemplos de configurações para o Mailgun. Para aproveitar ao máximo os serviços do Mailgun, não deixe de conferir os recursos avançados disponíveis na seção Leitura adicional.

Nesta página:

Retransmissão com Postfix

Configurar o Mailgun como um retransmissor de e-mails, permitirá que o Postfix encaminhe os e-mails destinados à entrega remota. Antes de começarmos, verifique se o Postfix está instalado e sendo executado no servidor.

Observação: nosso centro de conhecimento contém um artigo que detalha o processo de instalação do Postfix aqui.

Para configurar o Mailgun, precisamos alterar as opções de configuração do Postfix. As opções de configuração do Postfix estão detalhadas no arquivo main.cf .

Abra o arquivo com o editor de texto de sua escolha. Neste exemplo, usamos vim .

vim /etc/postfix/main.cf

O parâmetro relayhost especifica o host padrão para enviar e-mails para entrega remota. Aqui, alteramos o valor para incluir o nome de host e a porta do servidor SMTP do Mailgun, conforme exibido abaixo.

relayhost = [smtp.mailgun.org]:587

O Postfix agora encaminhará solicitações externas de e-mail para o servidor do Mailgun.

Em seguida, configuramos a autenticação do SMTP para as solicitações. Um módulo de camada de segurança e acesso simples (SASL) gerencia este processo nas configurações do Postfix. Altere as seguintes configurações de SASL.

smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = static:username:password
smtp_sasl_security_options = noanonymous

Observação: você usará o nome de usuário e a senha do painel de controle do Mailgun.

Suporte SSL/TLS (opcional)

Altere as seguintes configurações para incluir o suporte SSL/TLS.

smtp_tls_security_level = may
smtpd_tls_security_level = may
smtp_tls_note_starttls_offer = yes

Ao usar a criptografia TLS, confira se o Postfix sabe onde localizar o banco de dados da autoridade de certificação (CA) para sua distribuição Linux:

smtpd_tls_key_file = /etc/ssl/private/smtpd.key
smtpd_tls_cert_file = /etc/ssl/certs/smtpd.crt
smtpd_tls_CApath = /etc/ssl/certs

Verifique novamente o parâmetro relayhost e configure a porta SSL/TLS.

relayhost = [smtp.mailgun.org]:465

Limpeza

Recarregue o serviço Postfix para carregar as modificações feitas em main.cf.

sudo /etc/init.d/postfix restart

O Postfix agora passará a retransmitir os e-mails enviados para o Mailgun.

Enviar e-mails via SMTP

A integração do Mailgun com outros programas está disponível para linguagens que possuam uma biblioteca de SMTP. Vejamos um script Python comum que instrui o Mailgun a enviar um e-mail por meio do SMTP. Otimizaremos a biblioteca smtplib, que está disponível nativamente no Python.

import smtplib

def send_message_via_smtp():
    smtp = smtplib.SMTP("smtp.mailgun.org", 587)   
    smtp.login("username@example.com", "password")
    smtp.sendmail("from@example.com", "to@example.com", "mime_message_body")

send_message_via_smtp();

Começaremos importando o pacote smtplib com import. Em seguida, criamos uma função Python para conter o código. Dentro, criamos um objeto chamado smtp, que é uma instância do SMTP. No método de login, passamos nossas credenciais de SMTP do Mailgun. No método de envio de e-mail, definimos o remetente, o destinatário e os dados do corpo do e-mail. Finalizamos o script chamando o send_message_via_smtp function.

Observação: você usará o nome de usuário e a senha do painel de controle do Mailgun.

Enviar e-mails via HTTP

O SMTP é o protocolo mais comumente utilizado para enviar e-mails. Ele é usado pela maioria das aplicações de e-mail. No entanto, o SMTP pode não ser a primeira escolha para programar, devido à estrutura de formato da MIME. O envio via HTTP oferece uma abordagem mais simples. Com o HTTP, a aplicação simplesmente publica o conteúdo como parâmetros para o Mailgun. Os parâmetros correspondem àqueles solicitados ao enviar um e-mail normal: "De", "Para", "Cc", "Cco", "Assunto" e assim por diante.

Vejamos um exemplo de cURL comum.

curl -s -k --user api:key-3ax6xnjp29jd6fds4gc373sgvjxteol0 \
https://api.mailgun.net/v2/samples.mailgun.org/messages \    
-F from='Excited User <me@samples.mailgun.org>'\    
-F to=tom@example.com\    
-F to=mary@example.com\    
-F subject='Hello'\    
-F text='Testing some Mailgun awesomeness!' 

O exemplo acima envia um e-mail para dois endereços diferentes, com um assunto de "Hello" (Alô) e corpo "Testing some Mailgun awesomeness!" (Testando a grandiosidade do Mailgun!)". A API do HTTP oferece suporte a características como carregamento de arquivos, envio em modo de teste e muito mais. Consulte a Documentação da API para obter mais informações.

Receber mensagens via HTTP

O Mailgun pode receber e-mails de acordo com as regras que você definir. Isso é realizado ao gerar rotas dentro do painel de controle do Mailgun ou pela API. Depois de adicionados, os e-mails que chegam ao Mailgun, para os quais uma rota é gerada, podem ser encaminhados para sua aplicação utilizando um HTTP POST ou a sua caixa de entrada. O screenshot abaixo apresenta um exemplo de rota do painel de controle do Mailgun.

As rotas podem ser criadas para endereços de e-mail estáticos e para a correspondência de um padrão regular de expressão (regex). Eles também estão disponíveis para encaminhar uma solicitação de HTTP, possibilitando o envio de e-mails para sua aplicação. Consulte a Documentação de envio para obter mais informações.

Leitura adicional

Este artigo inclui algumas possibilidades oferecidas pelo Mailgun. O site do Mailgun oferece um amplo material de referência da API para diversas linguagens. Abaixo, estão alguns links que ajudarão você a aproveitar ao máximo este produto:

Para obter suporte ao produto Mailgun, entre em contato diretamente com o Mailgun em:



Este conteúdo foi útil?




© 2015 Rackspace US, Inc.

Salvo indicação em contrário, o conteúdo deste site está licenciado sob uma licença não adaptada de Creative Commons Attribution-NonCommercial-NoDerivs 3.0


Ver detalhes da licença e o AVISO LEGAL