@baumdigital/email-helper

Helper para envios de correos mediante SNS u otros, tambien utilidades para templates y armado de html.

Usage no npm install needed!

<script type="module">
  import baumdigitalEmailHelper from 'https://cdn.skypack.dev/@baumdigital/email-helper';
</script>

README

@baumdigital/email-helper

Esta libreria esta diseƱa para envios de correos mediante SNS u otros, tambien utilidades para armado de templates y mas.

Uso

Funcionalidad

//Configuraciones ambas son requeridas
const EmailHelper = require('@baumdigital/email-helper');
const emailsConfig = {
    defaultFrom: 'envios@baum.digital',
    defaultSender: 'ses',
    name:'enviosBaum',
    templateDefaultReplacements:{ // es un mapeo de keys y strings
        '::img_logo::': '',
        '::img_facebook::': '',
        '::img_twitter::': '',
        '::img_youtube::': '',
        '::img_instagram::': '',
        '::img_pinterest::': '',
        '::img_googleplay::': '',
        '::img_appstore::': '',
        '::url_facebook::': '#',
        '::url_twitter::': '#',
        '::url_youtube::': '#',
        '::url_instagram::': '#',
        '::url_googleplay::': 'https://play.google.com/store?hl=es',
        '::url_appstore::': 'https://www.apple.com/',
        '::current_year::': new Date().getFullYear()   
    },
    templateBuildMapping: {  // es la direccion dentro del proyecto en donde estan los templates
        // finalDirectory es donde se guardaran los templates ya concatenados
        finalDirectory: '/Root/html/final/',
        // lo ultimo debe ser el nombre del archivo, es decir header es el nombre del archivo
        headerDir: '/Root/html/common/header', // ${headerDir}.${lenguage}.${ext}
        footerDir: '/Root/html/common/footer', // ${footerDir}.${lenguage}.${ext}
        topDir: '/Root/html/common/top',  // ${topDir}.${lenguage}.${ext}
        // la carpeta en donde van a estar contenidos de los templates 
        // se buscaran como ${contentDir}/${nombreTemplate}-${lenaguege}.${ext}
        contentDir: '/Root/html/contents',
        //ext de los archivos
        ext: 'html',
    }
};
const awsSDK = {
  roleArn: 'example',
  accessKeyId: 'example',
  secretAccessKey: 'example',
  region: 'example',
};
const options = {}

const Email = new EmailHelper(emailsConfig, awsSDK, options);
//Hace un envio por correo. Si no se envia el from se usa el default de la config. Si no se manda el sender se usa el default de la config
Email.sendMail(to, subject, body, from, sender);
//Construye un template de correo y hace las sustituciones. Siempre se hace las sustitucaciones del config por default
Email.buildEmailTemplate(template, replacements, lang);
//Carga un template directamente desde un archivo y hace las sustitucaciones. Siempre se hace las sustitucaciones del config por default
Email.loadTemplateFromFile(dir, replacements);

Utilidades (metodo estaticos)

const EmailHelper = require('@baumdigital/email-helper');
//Utilidades
EmailHelper.emailObjectToString();
EmailHelper.getEmailsString();
EmailHelper.replaceAll();