grunt-postmark v0.0.9
grunt-postmark
Send emails through Postmark using GruntJS. You can use this to test your email templates.
Getting Started
This plugin requires that you have a Postmark account.
If you haven't used Grunt before, be sure to check out the Getting Started guide, as it explains how to create a Gruntfile as well as install and use Grunt plugins. Once you're familiar with that process, you may install this plugin with this command:
npm install grunt-postmark --save-devAfter the plugin is installed, it can be enabled in your Gruntfile:
grunt.loadNpmTasks('grunt-postmark');You'll need to add a config.json and a secrets.json per the mailmason configuration.
Postmark task
Run this task with the grunt postmark command.
Options
serverToken
Your server token can be found on your server’s credentials page on Postmark’s app.
Type: String
from
This is the from address you are using to send the email. This must be a confirmed address that's set up on Postmark’s sender signatures.
Type: String
to
The address you’re sending to.
Type: String
subject
Type: String
Examples
Options specified through target
grunt.initConfig({
postmark: {
email: {
serverToken: 'POSTMARK_API_TEST',
from: 'you@youremail.com',
to: 'you@youremail.com',
subject: 'Yo',
src: ['test/email.html']
}
}
});Specify options through targets or globally
Options specified through a target will always take precedence over global options.
grunt.initConfig({
postmark: {
options: {
serverToken: 'POSTMARK_API_TEST',
from: 'you@youremail.com',
to: 'you@youremail.com',
subject: 'Yo'
},
email: {
to: 'joe@youremail.com',
src: ['test/email.html']
},
digest: {
subject: 'Yo',
src: ['test/email.html', 'test/email2.html']
}
}
});Postmark templates task
Run this task with the grunt postmark-templates command.
The postmark-templates task is an alias of the postmark-templates-from-targets task which is itself a two stepped task – postmark-templates-upload followed by postmark-templates-output.
postmark-templates (postmark-templates-from-targets) is intended for programmatic usage from other grunt tasks.
postmark-templates-upload Targets
name
The name of your template.
Type: String
subject
The subject line of your template.
Type: String
htmlSrc
A path to the generated HTML for your template. Not used if htmlBody is specified.
Type: String
textSrc
A path to the generated plain text for your template. Not used if textBody is specified.
Type: String
htmlBody
The generated HTML content of your template. Not required if htmlSrc is specified.
Type: String
textBody
The generated plain text content of your template. Not required if textSrc is specified.
Type: String
postmark-templates-upload Options
serverToken
Your server token can be found on your server’s credentials page on Postmark’s app.
Type: String
ephemeralUploadResultsProperty
This is the name of a temporary grunt task configuration property used to communicate the upload results between postmark-templates-upload and postmark-templates-output without having to write a temporary file. This should be the same value as ephemeralUploadResultsProperty for postmark-templates-output.
Type: String
postmark-templates-output Options
outputFile
The name of a file to output the results of the upload to Postmark.
Type: String
cleanOutput
If true, do not export htmlBody, htmlSrc, textBody or textSrc in the specified outputFile.
Type: Boolean
ephemeralUploadResultsProperty
This is the name of a temporary grunt task configuration property used to communicate the upload results between postmark-templates-upload and postmark-templates-output without having to write a temporary file. This should be the same value as ephemeralUploadResultsProperty for postmark-templates-upload.
Type: String
Example
grunt.initConfig({
'postmark-templates-upload': {
options: {
serverToken: 'POSTMARK_API_TEST',
ephemeralUploadResultsProperty: 'temp'
},
test_email: {
name: 'testing-postmark-templates-js1',
subject: 'Testing grunt-postmark-templates',
htmlSrc: 'test/email.html',
textSrc: 'test/email.txt'
},
test_email_inline_body: {
name: 'testing-postmark-templates-js3',
subject: 'Testing grunt-postmark-templates (inline body)',
htmlBody: '<html><body><h1>Another email test</h1></body></html>',
textBody: 'Hello from grunt-postmark-templates\n'
}
},
'postmark-templates-output': {
options: {
cleanOutput: true,
outputFile: 'templates.json',
ephemeralUploadResultsProperty: 'temp'
}
}
});Postmark templates (from file) task
Run this task with the grunt postmark-templates-from-file command.
The postmark-templates-from-file task invokes the postmark-templates task with targets read from a JSON file (via postmark-templates-parse).
This task is intended for standalone, manual usage.
postmark-templates-parse Options
inputFile
The name of a file that specifies templates for uploading to Postmark. These templates take the same shape as defined by postmark-templates-upload. This should usually be the same value as outputFile for postmark-templates-output.
Type: String
Example
In your Gruntfile:
grunt.initConfig({
'postmark-templates-parse': {
options: {
inputFile: 'templates.json'
}
},
'postmark-templates-upload': {
options: {
serverToken: 'POSTMARK_API_TEST',
ephemeralUploadResultsProperty: 'temp'
}
},
'postmark-templates-output': {
options: {
cleanOutput: true,
outputFile: 'templates.json',
ephemeralUploadResultsProperty: 'temp'
}
}
});In the file specified by inputFile, in this case, templates.json:
{
"test_email": {
"name": "testing-postmark-templates-js1",
"subject": "Testing grunt-postmark-templates",
"htmlSrc": "test/email.html",
"textSrc": "test/email.txt"
},
"test_email_again": {
"name": "testing-postmark-templates-js2",
"subject": "Testing grunt-postmark-templates (again)",
"htmlSrc": "test/email.html",
"textSrc": "test/email.txt"
},
"test_email_inline_body": {
"name": "testing-postmark-templates-js3",
"subject": "Testing grunt-postmark-templates (inline body)",
"htmlBody": "<html><body><h1>Another email test</h1></body></html>",
"textBody": "Hello from grunt-postmark-templates\n"
}
}