Awesome Content Sender
This module provide a generic AwesomeModule which sends any contents using a sender.
It comes with a precoded email-sender. This sender merges a content into a template
then send it using the mailer. This mailer is a mandatory dependency and can be found here:
Exposed api
- registerSender(type, sender)
Store a new sender of type type. A minimal sender is as such:
module.exports = {
  send: function(from, to, content, options) {
    var deferred = require('q').defer();
    
    // ...
    // do whatever you want with from, to, content and options.
    // ...
    
    deferred.resolve();
    return deferred.promise;
  }
}
- send(from, to, content, options, type)
Send the content using the sender stored of type type. It only delegates to sender.send method.
Dependencies
- linagora.io.mailer: mandatory, it is used in the email-sender.
- logger: optional, it should at list exposed logger.info and logger.error,
otherwise by default it is console.log.
- config: optional, it should at list exposed config.email.templateDir,
otherwise by default it is ./templates.
The email-sender
This sender can be used with:
send(from, to, content, options, **'email'**)
- 
from: It is a tuple { objectype: {String}, id: {String} } 
- 
to: It is a tuple { objectype: {String}, id: {String} } 
- 
content: Any kind of object 
- 
options: expected object is {
template: {String}, mandatory,
message: {Object}
} 
By default templateDir is ./templates. So you must have this directory at the root of your project as such:
| templates                  // templateDir
| -- invitation              // options.template
     | -- style.less
     | -- html.jade
| --  digest                 // options.template
     | --  style.less
     | --  html.jade
| -- ...