pomo-mailer

0.3.0 • Public • Published

Pomo Mailer

  • Render multi-language mail with jade template.
  • Mail queue based on MongoDB, send mail by local timezone.
  • Manage cyclical task, resume from original progress when terminated.
  • Built-in some useful templates.
  • Mail agent using HTTP API.
{MailerQueueAgentTask} = require 'pomo-mailer'

Mailer

mailer = new Mailer
  server:
    service: 'Postmark'
    auth:
      user: 'postmark-api-token'
      pass: 'postmark-api-token'
 
  from: 'Pomotodo <robot@pomotodo.com>'
 
mailer.sendMail 'action''jysperm@gmail.com',
  title: 'Please confirm your email address'
  link: 'https://pomotodo.com'
  action: 'Confirm'
.then console.log
.catch console.error

Queue

queue = new Queue
  mailer: mailer
  mongodb: 'mongodb://localhost/pomo-mailer-test'
 
queue.pushMail
  template: 'billing'
  address: 'jysperm@gmail.com'
  locals: generateBilling()
.then console.log
.catch console.error

Agent

agent = new Agent
  queue: queue
  users:
    jysperm: 'pass'
 
app = express()
app.use bodyParser.json()
app.use agent.express()

Task

task = new Task
  name: 'weekly'
  worker: worker
  groupBy: -> moment().format 'YYYY-W'
  nextGroup: -> moment().startOf('week').add(weeks: 1)
 
worker = (task) ->
  return Q.Promise (resolve, reject, notify) ->
    db.accounts.find
      _id:
        $gte: task.progress ? null
    .sort
      _id: 1
    .then (accounts) ->
      async.each accounts({_id, email, generateWeekly}) ->
        notify _id
        mailer.sendMail 'weekly'emailgenerateWeekly()
      .then resolvereject

Built-in templates

  • action
  • alert
  • billing

Some useful templates converted from mailgun/transactional-email-templates.

Common fields:

  • title {String}

  • detail {String}

  • link {String}

  • action {String}

  • copyright {String}

  • unsubscribe {Object}

    • before {String}
    • link {String}
    • action {String}
    • after {String}

alert fields:

  • alert {String}

billing fields:

  • address {Array} of {String}

  • products {Array}

    • name {String}
    • price {String}
  • total {Object}

    • name {String}
    • price {String}

Readme

Keywords

none

Package Sidebar

Install

npm i pomo-mailer

Weekly Downloads

7

Version

0.3.0

License

MIT

Last publish

Collaborators

  • faceair
  • jysperm
  • orzfly