https://github.com/repetere/periodicjs.core.mailer
nodemailer transport loader
https://github.com/repetere/periodicjs.core.mailer
async cms javascript mailer mailgun nodejs nodemailer sendmail ses smtp
Last synced: 2 months ago
JSON representation
nodemailer transport loader
- Host: GitHub
- URL: https://github.com/repetere/periodicjs.core.mailer
- Owner: repetere
- License: mit
- Created: 2014-08-18T19:35:09.000Z (almost 12 years ago)
- Default Branch: master
- Last Pushed: 2019-12-02T21:27:08.000Z (over 6 years ago)
- Last Synced: 2026-01-14T03:46:48.742Z (6 months ago)
- Topics: async, cms, javascript, mailer, mailgun, nodejs, nodemailer, sendmail, ses, smtp
- Language: JavaScript
- Size: 516 KB
- Stars: 0
- Watchers: 7
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# periodicjs.core.mailer [](https://coveralls.io/github/typesettin/periodicjs.core.mailer?branch=master) [](https://travis-ci.org/typesettin/periodicjs.core.mailer)
Periodic's Code mailer module exports a single function that asynchronously returns a node mailer transport to send transactional emails with.
[API Documentation](https://github.com/typesettin/periodicjs.core.mailer/blob/master/doc/api.md)
## Installation
```
$ npm install periodicjs.core.mailer
```
This is a part of Periodic's core.
## Usage
### Sending Emails
*JavaScript*
```javascript
var CoreMailer = require('periodicjs.core.mailer'),
sampleemail ={
to: "user@example.com",
cc: "service@example.com",
subject: "sample email test",
generateTextFromHTML: true,
html: "
Welcome User
email rocks
"
},
emailtransport;
//instance methods
const newCoreMailer = new CoreMailer({
config: {
transportConfig: {
type: 'stub',
transportoptions: {
debug: true,
args: ['-t', '-i']
},
},
},
});
newCoreMailer.sendEmail(sampleemail)
.then(console.log)
.catch(console.error);
//static methods
CoreMailer.sendEmail(sampleemail)
.then(console.log)
.catch(console.error);
//example transports
const sendmailTransportExample = {
"type":"sendmail",
"transportoptions":{
"debug":true,
"args":["-t","-i"]
}
};
const SMTPTransportExample = {
"type":"SMTP",
"transportoptions":{
"service": "SendGrid",
"auth": {
"user": "username",
"pass": "password"
}
}
};
const SESTransportExample = {
"type":"ses",
"transportoptions":{
"accessKeyId": "ACCESSKEYID",
"secretAccessKey": "SECRETACCESSKEY"
}
};
//all types:
const transports = {
ses,
sendmail: sendmailTransport,
'smtp-pool': smtpPool,
sendgrid: sgTransport,
mailgun: mgTransport,
stub: stubTransport,
direct: directTransport,
}
```
## API
```javascript
//options.emailtemplatefilepath
CoreMailer.getEmailTemplateHTMLString(options); //Promise.resolve(templateString);
//options.transportObject.transportType, options.transportObject.transportOptions
CoreMailer.getTransport(options); //Promise.resolve(nodemailertransport);
//options.to, options.from, options.html, options.subject, etc
CoreMailer.sendEmail(options); //Promise.resolve(emailstatus);
```
## Development
*Make sure you have grunt installed*
```
$ npm install -g grunt-cli
```
For tests
```
$ grunt test && grunt coveralls
```
For generating documentation
```
$ grunt doc
$ jsdoc2md lib/**/*.js > doc/api.md
```
## Notes
* Check out https://github.com/typesettin/periodicjs for the full Periodic Documentation