- Centro de Aprendizagem
- Mitte Pro
- Documentação da API
- SMTP
- Email com template
Em python
# -*- coding: utf-8 -*-
import smtplib
import json
from email.mime.multipart import MIMEMultipart
 
msg = MIMEMultipart('alternative')
# É necessário informar ao SMTP qual método deseja usar
msg['send_method'] = 'template'
# O endereço de email tem que estar entre os caracteres <>. O nome pode estar do lado separado por um espaço
msg['recipient_list'] = "Destinatario1 <destinatario1@exemplo.com>"
# No envio de emails com template, o nome deste é obrigatório
msg['template_slug'] = 'template-slug-name'
# O endereço de email do remetente segue a mesma regra que os emails dos destinatários
msg['from'] = 'Remetente <destinatario1@exemplo.com>'
# No 'context' estarão os valores globais, ou seja, todos os emails terão estes mesmos valores
msg['context'] = json.dumps({'foobar': True})
# No 'context_per_recipient' estarão os valores específicos por destinatário.
msg['context_per_recipient'] = json.dumps({'destinatario1@exemplo.com': {'foo': True}})
msg['context_per_recipient'] = json.dumps({'destinatario2@exemplo.com': {'bar': True}})
msg['subject'] = 'Apenas um teste'
# Caso os parâmetros 'message_text' e 'message_html' forem repassados, então essas mensagens serão enviadas
# sem usar o template. Mesmo assim, por questões de segurança, é necessário enviar o template.
msg['message_text'] = 'Apenas um teste'
msg['message_html'] = '<em>Apenas <strong>um</strong> teste</em>'
# Se o parâmetro 'use_template_subject' for passado como True, então 'subject' não precisa ser enviado
msg['use_template_subject'] = json.dumps(True)
# Se os parâmetros 'use_template_email' for enviado, então 'from' não precisa ser enviado
msg['use_template_email'] = json.dumps(True)
# Se o parâmetro 'use_template_from' for enviado, então o nome informado em 'from' será substituido
msg['use_template_from'] = json.dumps(True)
# Passe True nesse parâmetro para ativar o rastreio de visualização e clique do email
msg['activate_tracking'] = json.dumps(True)
# Passe True nesse parâmetro para extrair uma versão de texto simples do template
msg['get_text_from_html'] = json.dumps(True)
# No caso do SMTP e de destinatários que não terão nomes atrelados aos emails,
# é possível enviar desta outra forma
to_addrs = [
    "destinatario2@exemplo.com"
]
s = smtplib.SMTP('smtp.mitte.pro', 25)
s.login('xxxxxxxxxxxxxxxxxxxxxx', 'xxxxxxxxxxxxxxxxxxx')
s.sendmail(msg['from'], to_addrs, msg.as_string())
s.quit()
Em NodeJS
const _ = require('lodash');
const nodemailer = require('nodemailer');
const options = {
    // O endereço de email do remetente segue a mesma regra que os emails dos destinatários
    from: 'Remetente <teste@teste.com.br>',
    // No caso do SMTP e de destinatários que não terão nomes atrelados aos emails,
    // é possível enviar desta outra forma
    to: ['teste@teste.com.br'],
    subject: 'Apenas um teste',
    text: 'Apenas um teste',
    
    // A maioria dos parâmetros do MittePro serão colocados no parâmetro 'headers'
    headers: {
        templateSlug: 'template-slug-name',  
        
        // É necessário informar ao SMTP qual método deseja usar
        sendMethod: 'template',
        // Passe True nesse parâmetro para ativar o rastreio de visualização e clique do email
        activateTracking: true,
        // O endereço de email tem que estar entre os caracteres <>. O nome pode estar do lado separado por um espaço
        recipientList: ['Déstìnãtâríö 2 <teste@teste.com.br>']
    }
};
let transporter = nodemailer.createTransport({
    host: 'smtp.mitte.pro',
    port: '25',
    secure: false, // true para 465, false para outras portas
    auth: {
        user: 'xxxxxxxxxxxxxxxxxxxxx',
        pass: 'xxxxxxxxxxxxxxxxxxxxx'
    }
});
transporter.sendMail(options, (error, info) => {
    console.log('');
    console.log('-------------');
    console.log('PARAMETROS UTILIZADOS');
    console.log(options);
    console.log('RESULTADO');
    if (error) return console.log('Error', error);
    console.log('Info', info);
    console.log('-------------');
    console.log('');
});
