- Centro de Aprendizagem
- Mitte Pro
- Documentação da API
- SMTP
- Email com template
Em python
import smtplib 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_name'] = 'SLUG DO SEU TEMPLATE' # O endereço de email do remetente segue a mesma regra que os emails dos destinatários msg['from'] = 'Remetente <remetente@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('mittepro.alterdata.com.br', 25) s.login('SUA CHAVE PÚBLICA', 'SUA CHAVE PRIVADA') s.sendmail(msg['from'], to_addrs, msg.as_string()) s.quit()
Em NodeJS
var SMTPConnection = require('smtp-connection'); var self = { getParams: function () { var envelope = { from: 'remetente@exemplo.com', // No caso do SMTP, e de destinatários que não terão nomes atrelados aos emails, // é possível enviar desta outra forma to: [ "<destinatario2@exemplo.com>" ] }; // É necessário informar ao SMTP qual método deseja usar var msg = 'send_method: template \n\r'; msg += 'username: SUA CHAVE PÚBLICA \n\r'; msg += 'password: SUA CHAVE PRIVADA \n\r'; // 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>" \n\r'; // No envio de emails com template, o nome deste é obrigatório, sempre msg += 'template_name: SLUG DO SEU TEMPLATE \n\r'; // O endereço de email do remetente segue a mesma regra que os emails dos destinatários msg += 'from: Remetente <remetente@exemplo.com> \n\r'; // O 'context' são os valores globais, ou seja, todos os emails terão estes mesmos valores msg += 'context: ' + JSON.stringify({'foobar': true}) + ' \n\r'; // O 'context_per_recipient' são os valores específicos por destinatário. msg += 'context_per_recipient: ' + JSON.stringify({'destinatario1@exemplo.com': {'foo': true}}) + ' \n\r'; msg += 'context_per_recipient: ' + JSON.stringify({'destinatario2@exemplo.com': {'bar': true}}) + ' \n\r'; msg += 'subject: Apenas um teste \n\r'; // Se os parâmetros 'message_text' e 'message_html' forem enviados, então essas mensagens serão enviadas, // e o template não será usado. Mesmo assim, por questões de segurança, é necessário enviar o template. msg += 'message_text: Apenas um teste. \n\r'; msg += 'message_html: <em>Apenas <strong>um</strong> teste</em>. \n\r'; // Se o parâmetro 'use_template_subject' for passado como True, então 'subject' não precisa ser enviado msg += 'use_template_subject: true \n\r'; // Se os parâmetros 'use_template_email' for enviado, então 'from' não precisa ser enviado msg += 'use_template_email: true \n\r'; // Se o parâmetro 'use_template_from' for enviado, então o nome informado em 'from' será substituido msg += 'use_template_from: true \n\r'; // Passe True nesse parâmetro para ativar o rastreio de visualização e clique do email msg += 'activate_tracking: true \n\r'; // Passe True nesse parâmetro para extrair uma versão de texto simples do template msg += 'get_text_from_html: true \n\r'; return {envelope: envelope, message: msg} }, startConnection: function () { var connection = new SMTPConnection({ port: 25, authMethod: 'LOGIN', host: 'mittepro.alterdata.com.br' }); connection.connect(function () { var auth = { user: 'SUA CHAVE PÚBLICA', pass: 'SUA CHAVE PRIVADA' }; connection.login(auth, function (err) { if (err) { console.error(err); connection.close(); } else { var params = self.getParams(); connection.send(params.envelope, params.message, function (err, info) { console.info('ERR:', err); console.info('INFO', info); connection.close(); } ) } }) }); } }; self.startConnection();