Sends emails to folks who want to log in!
Usage with the Just Login Core
var justLoginEmailer = require('just-login-emailer')
var JustLoginCore = require('just-login-core')
var db = require('level')('./databases/core')
var core = JustLoginCore(db)
setTimeout(function () {
core.beginAuthentication('session id', 'user@example.com')
}, 5000)
function createHtmlEmail(token) {
return 'To login, <a href="http://example.com/login?token=' + token + '">click here</a>!'
}
var transportOpts = {
host: 'smtp.gmail.com',
port: 465,
secure: true,
auth: {
user: 'sending_address@gmail.com',
pass: 'whatever the password is'
}
}
justLoginEmailer(core, {
createHtmlEmail: createHtmlEmail,
transport: transportOpts
})
var justLoginEmailer = require('just-login-emailer')
var emitter = justLoginEmailer(core, options)
core
A just-login-core
object.
options.createHtmlEmail
A function that is passed a token
and returns an HTML email message.
token
string, e.g. 'b02ceecc-2c81-11e5-89e4-83f49df54746'
function createHtmlEmail(token) {
return '<a href="http://example.com/login/' + token + '">Click to Login!</a>'
}
options.transport
A Nodemailer transport object. The following fields are suggested.
{
host: 'smtp.gmail.com',
port: 465,
secure: true,
auth: {
user: 'sender@gmail.com',
pass:'password123'
}
}
options.mail
(optional)An optional object with the following properties:
from
string, e.g. 'sender@gmail.com'
, defaults to options.transport.auth.user
if it existssubject
string, e.g. 'Log in to this site'
, defaults to 'Login'
to
and html
properties are ignored.){
from: 'sender@gmail.com',
subject: 'Log in to example.com!'
}
emitter
An emitter that sends an event on the status of an email.
emitter.emit('error', err)
on an erroremitter.emit('data', info)
if it was successful. See full specs of info object.var emitter = JustLoginEmailer(core, options)
emitter.on('error', function (err) {
throw err
})
emitter.on('data', function (info) {
console.log(info.response)
})
With npm do:
npm install just-login-emailer