@rescuento/emails
TypeScript icon, indicating that this package has built-in type declarations

1.0.2 • Public • Published

Description

Modulo para el envio de correos en las app de Rescuento

Installation

$ npm i --save @rescuento/emails

Setup

import { EmailsServiceModule } from '@rescuento/emails';

Configuracion para usar SendGrid

EmailsServiceModule.forRoot({
    provider: 'sendgrid',
    providerConfig: {
      apiKey: 'SENDGRID_KEY_HERE'
    },
    senderName: 'Rescuento',
    senderAddress: 'no-reply@rescuento.com',
    minDelay: 500,
    delayFactor: 2,
    retries: 10,
    maxDelay: 15000,
  })

Configuracion para usar AWS SES

EmailsServiceModule.forRoot({
    provider: 'aws',
    providerConfig: {
      region: 'us-east-1',
      secretAccessKey: 'SECRET_KEY_HERE',
      accessKey: 'ACCESS_KEY_HERE'
    },
    senderName: 'Rescuento',
    senderAddress: 'no-reply@rescuento.com',
    minDelay: 500,
    delayFactor: 2,
    retries: 10,
    maxDelay: 15000,
  })

Se puede configurar como un modulo dinámico

EmailsServiceModule.forRootAsync({
    useFactory: () => {
      return {
          provider: 'sendgrid',
          providerConfig: {
            apiKey: 'SENDGRID_KEY_HERE'
          },
          senderName: 'Rescuento',
          senderAddress: 'no-reply@rescuento.com',
          minDelay: 500,
          delayFactor: 2,
          retries: 2,
          maxDelay: 15000,
        }
    }
  })
EmailsServiceModule.forRootAsync({
    useExisting: ConfigService
  })
EmailsServiceModule.forRootAsync({
    useExisting: ConfigService,
    imports: [ ConfigModule ]
  })

Modo de uso

Para realizar las pruebas necesarias usaremos docker asi garantizamos mantener la misma plataforma que se va a usar en producción

	import { EmailService, BasicEmail, MjmlTemplateEmail } from '@rescuento/emails';
	constructor(private readonly emailService: EmailService) { }
	function sendEmail(){
		const email: BasicEmail = {
	      from: {
	        name: 'Rescuento',
	        email: 'no-reply@rescuento.com'
	      },
	      to: [{
	        name: 'Customer Name',
	        email: 'username@domain.com'
	      }],
	      subject: 'Esto es una prueba',
	      plainBody: 'Este es el mensaje en texto plano',
	      htmlBody: '<b>Aqui ponemos el email en formato HTML</b>'
	    }
	    await this.emailService.sendEmail(email);
	}
		
	function sendEmailFromTemplate(){
	    const email: MjmlTemplateEmail = {
	      mjmlTemplate: "MJML TEMPLATE",
	      templateData: {
	      		"someKey": "Some Value"
	      },
	      from: {
	        name: 'Rescuento',
	        email: 'no-reply@rescuento.com'
	      },
	      to: [{
	        name: 'Customer Name',
	        email: 'username@domain.com'
	      }],
	      subject: 'Esto es una prueba',
	    }
	    return this.emailService.sendEmailWithTemplate(email);
	}
	

/@rescuento/emails/

    Package Sidebar

    Install

    npm i @rescuento/emails

    Weekly Downloads

    0

    Version

    1.0.2

    License

    UNLICENSED

    Unpacked Size

    30.9 kB

    Total Files

    39

    Last publish

    Collaborators

    • dmanuelcl