A Postmark API service adapter for FeathersJS
npm install feathers-postmark




> A Postmark API service adapter for FeathersJS
```
npm install feathers-postmark --save

The feathers-postmark service adapter creates services that send transactional email through Postmark.
adapter is a function that receives an object as options and returns a class implementing the Feathers service interface.$3
- options {Object}
- key {String} - Your Postmark API key. Set it to POSTMARK_API_TEST for testing purposes. Required.Once you have passed your Postmark API
key in the options, the service is ready to be used in your application:`js
const postmark = require('feathers-postmark');
const options = {
key: 'POSTMARK_API_TEST'
};app.use('messages', postmark(options));
app.service('messages').hooks({
before: {
create: [
// Use hooks in feathers-hooks-common to protect your service from outside access.
disallow('external')
]
}
});
`
$3
The create method will send the provided data through the Postmark Email API.
- data {PostmarkEmail | Array} - Supports any of the options available in the Postmark Email API body format.#### Send a single message
If the payload of data is in the format of a PostmarkEmail Object, as shown in the example, below, the sendEmail method of the
postmark client will be used.`js
const message = {
"From": "sender@example.com",
"To": "receiver@example.com",
"Cc": "copied@example.com",
"Bcc": "blank-copied@example.com",
"Subject": "Test",
"Tag": "Invitation",
"HtmlBody": "Hello",
"TextBody": "Hello",
"ReplyTo": "reply@example.com",
"Headers": [
{
"Name": "CUSTOM-HEADER",
"Value": "value"
}
],
"TrackOpens": true,
"TrackLinks": "None",
"Attachments": [
{
"Name": "readme.txt",
"Content": "dGVzdCBjb250ZW50",
"ContentType": "text/plain"
},
{
"Name": "report.pdf",
"Content": "dGVzdCBjb250ZW50",
"ContentType": "application/octet-stream"
}
]
};app.service('my-postmark-service').create(message);
`#### Send a Templated Message
If your message includes a
TemplateId property, the sendEmailWithTemplate method of the postmark client will be used. The message data can include any of the PostmarkTemplateMessage properties.#### Send a Batch Message
If the
data passed to create is an array, the data will be passed to the sendEmailBatch method of the postmark client.Complete Example
Here's an example of a Feathers server that uses
feathers-postmark. `js
const feathers = require('feathers');
const rest = require('feathers-rest');
const hooks = require('feathers-hooks');
const bodyParser = require('body-parser');
const errorHandler = require('feathers-errors/handler');
const postmark = require('feathers-postmark');// Initialize the application
const app = feathers()
.configure(rest())
.configure(hooks())
// Needed for parsing bodies (login)
.use(bodyParser.json())
.use(bodyParser.urlencoded({ extended: true }))
// Initialize your feathers plugin
.use('messages', postmark({key: 'POSTMARK_API_TEST'})
.use(errorHandler());
app.listen(3030);
console.log('Feathers app started on 127.0.0.1:3030');
``Copyright (c) 2016
Licensed under the MIT license.