# mailpress

> A wiring up of node-mailer to templates.

Latest version **0.0.9** (published 2014-06-24) · BSD-2-Clause license · 0 weekly downloads

## Install

```sh
npm install mailpress
pnpm add mailpress
yarn add mailpress
bun add mailpress
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support; pre 1.0.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 0.0.9 |
| Published | 2014-06-24 |
| First published | 2014-04-21 |
| Weekly downloads | 0 |
| License | BSD-2-Clause |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 7 |
| Known vulnerabilities | 0 (+16 in 3 direct dependencies) |
| Install scripts | no |
| GitHub stars | 0 |
| Author | Jake Swanson |
| Maintainers | jakswa |
| Keywords | node, mailer, templates, mustache |

## Links

- npm: https://www.npmjs.com/package/mailpress
- Repository: git@github.com:jakswa/node-mailpress
- Homepage: https://github.com/jakswa/node-mailpress
- Issues: https://github.com/jakswa/node-mailpress/issues
- npm.io page: https://npm.io/package/mailpress

## Dependencies (7)

- [config](https://npm.io/package/config.md) ~0.4.35
- [bluebird](https://npm.io/package/bluebird.md) ~1.2.3
- [mustache](https://npm.io/package/mustache.md) ~0.8.1
- [nodemailer](https://npm.io/package/nodemailer.md) ~0.6.3
- [underscore](https://npm.io/package/underscore.md) ~1.6.0
- [node-config](https://npm.io/package/node-config.md) 0.0.2
- [stack-trace](https://npm.io/package/stack-trace.md) 0.0.9

## Alternatives

- [@expo/fingerprint](https://npm.io/package/@expo/fingerprint.md) — 6.2M weekly downloads
- [@azure/monitor-opentelemetry-exporter](https://npm.io/package/@azure/monitor-opentelemetry-exporter.md) — 850.0K weekly downloads
- [@azure/monitor-opentelemetry](https://npm.io/package/@azure/monitor-opentelemetry.md) — 624.0K weekly downloads
- [@posthog/ai](https://npm.io/package/@posthog/ai.md) — 423.3K weekly downloads
- [fakefilter](https://npm.io/package/fakefilter.md) — 63.9K weekly downloads

## Recent versions

- 0.0.9 (latest) — 2014-06-24
- 0.0.7 — 2014-04-25
- 0.0.6 — 2014-04-25
- 0.0.5 — 2014-04-24
- 0.0.4 — 2014-04-23
- 0.0.3 — 2014-04-23
- 0.0.2 — 2014-04-23
- 0.0.1 — 2014-04-21

## README

node-mailpress
==============

Wiring up of [node-mailer](https://github.com/andris9/Nodemailer) to templates. Plop in the module, insert configs, and some template files, and you're ready to churn out some emails! Comes packaged with default naming expectations for quickly making mailers. For example, a `welcome.js` mailer will have template files named `mailer.html` and `mailer.txt` in the `templateDir`. You can override such expectations when creating a mailer.

## Requirements

 - [`node-config`](https://github.com/lorenwest/node-config): All our projects currently use this to configure our apps. Apologies if it doesn't fit in with your project. Easy enough to remove, if there's need.
 - [`mustache`](http://mustache.github.io/): Currently, this only supports mustache templates. 

## Usage:

- `npm install --save mailpress`
- add `mailer` config section to your `node-config`—an example for Amazon SES is below.
- create your first mailer module
- create corresponding templates in the templateDir you have set (or in `server/views/mail` if you're going by the package defaults)
- require in your mailer and call `mailer.sendMail(templateLocals, [configs])` on it

## Config Example

```javascript
mailer: {
        templateDir: "relative/to/project/root",
        transport: "SMTP",
        transportOpts: {
            service: "SES",
            auth: {
                user: "<your user>",
                pass: "<your pass>"
            }
        }
    }
}
```

## Mailer Example

```javascript
// welcome.js
var Mailpress = require('mailpress');

var defaults = {
  // to manually specify which template files to use for a mailer:
  // (this changes the mailer to use bob.html and bob.txt in the templateDir)
  //  templateBaseName: 'bob',
  // to override default extension expectations for templates:
  // (to test the text-only version, for example)
  //  templateExtensions: {text: '.txt'},
  
  
  subject: 'Default subject line',
  from: 'noreply@someemail.com'
};

module.exports = new Mailpress(defaults);
```
and to use it:
```javascript
// in some other module
var myMailer = require('./welcome');
myMailer.sendMail({
  name: 'Jake Swanson', 
  welcomeText: 'Hello Mr. Swanson'
},{
  to: 'jakeswanson@fakemail.com',
  subject: 'Setting subject line for this email!'
});
```

and here's a set of corresponding [mustache](http://mustache.github.io/) template examples:

**NOTE**: The base name of template files must be same as the mailer base name, unless you override
it in the mailer defaults. So, for `welcome.js`, you would name them `welcome.html` and `welcome.txt`
```html
<!-- these two are placed in 'templateDir' directory specified in the config
  -- e.g. relative/to/root/welcome.html
     and  relative/to/root/welcome.txt
  -->
<h1>{{welcomeText}}</h1>
<p>Hey there {{name}}, this email is crafted for you.</p>
```

```
{{welcomeText}}!
Hey there {{name}}, this email is crafted for you.
```

---
_Source: https://npm.io/package/mailpress · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
