Enviar e-mail com Mailgun

A API Mailgun é RESTful e baseada em HTTP. Ela usa URLs previsíveis e orientados por recursos, além de funções HTTP integradas, para transmitir parâmetros e autenticação. A API Mailgun responde com códigos HTTP padrão para indicar erros e retorna JSON.

A Mailgun publicou bibliotecas em várias linguagens. Use essas ou sua biblioteca HTTP/REST favorita para fazer chamadas HTTP para a Mailgun.

Para ver mais amostras de código em outras linguagens de programação, consulte a documentação da Mailgun.

Preços

Como usuário do Google Cloud Platform, as primeiras 30 mil mensagens são gratuitas todos os meses. Consulte a calculadora de preços mensais na página de inscrição para ver os preços de mais mensagens e descontos por volume.

Configuração

Como enviar um e-mail de texto simples

def send_simple_message(recipient):
    http = httplib2.Http()
    http.add_credentials('api', MAILGUN_API_KEY)

    url = 'https://api.mailgun.net/v3/{}/messages'.format(MAILGUN_DOMAIN_NAME)
    data = {
        'from': 'Example Sender <mailgun@{}>'.format(MAILGUN_DOMAIN_NAME),
        'to': recipient,
        'subject': 'This is an example email from Mailgun',
        'text': 'Test message from Mailgun'
    }

    resp, content = http.request(
        url, 'POST', urlencode(data),
        headers={"Content-Type": "application/x-www-form-urlencoded"})

    if resp.status != 200:
        raise RuntimeError(
            'Mailgun API error: {} {}'.format(resp.status, content))

Como enviar um e-mail de HTML e texto

Como enviar uma mensagem com partes de HTML e texto:

def send_complex_message(recipient):
    http = httplib2.Http()
    http.add_credentials('api', MAILGUN_API_KEY)

    url = 'https://api.mailgun.net/v3/{}/messages'.format(MAILGUN_DOMAIN_NAME)
    data = {
        'from': 'Example Sender <mailgun@{}>'.format(MAILGUN_DOMAIN_NAME),
        'to': recipient,
        'subject': 'This is an example email from Mailgun',
        'text': 'Test message from Mailgun',
        'html': '<html>HTML <strong>version</strong> of the body</html>'
    }

    resp, content = http.request(
        url, 'POST', urlencode(data),
        headers={"Content-Type": "application/x-www-form-urlencoded"})

    if resp.status != 200:
        raise RuntimeError(
            'Mailgun API error: {} {}'.format(resp.status, content))

Amostra de resposta:

{
    "message": "Queued. Thank you.",
    "id": "<20111114174239.25659.5817@samples.mailgun.org>"
}

Saiba mais

Para exemplos e informações mais detalhados, incluindo como rastrear e encaminhar mensagens, consulte a documentação da Mailgun (em inglês).

Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

Ambiente padrão do App Engine para Python 2