postmark
Version:
Official Node.js client library for the Postmark HTTP API - https://www.postmarkapp.com
69 lines (45 loc) • 3.48 kB
Markdown
<a href="https://postmarkapp.com">
<img src="https://github.com/ActiveCampaign/postmark.js/raw/main/postmark.png" alt="Postmark Logo" title="Postmark" width="120" height="120" align="right">
</a>
# Postmark Node.js Library
[](https://circleci.com/gh/ActiveCampaign/postmark.js)
[](http://www.opensource.org/licenses/MIT)
[](https://badge.fury.io/js/postmark)
Send emails with the greatest of ease! [Postmark](http://www.postmarkapp.com) allows you to send your application's emails with high delivery rates, including bounce/spam processing and detailed statistics.
In addition, Postmark can parse incoming emails which are forwarded back to your application.
Now your node.js application can send emails through [Postmark](http://www.postmarkapp.com).
As the official Node.js library for Postmark, postmark.js has support for the entire REST API.
## Requirements
Minimum supported [Node](https://endoflife.date/nodejs) version `v18.0.0`. The library uses the native Fetch API and has
no runtime dependencies. If you use older Node versions for which
[active and security support ended](https://endoflife.date/nodejs), you will need to use older library versions (3.x.x for Node < 14, 4.x.x for Node < 18).
> **Note:** The global Fetch API is stable from Node 21. On Node 18–20 it works but may log an
> `ExperimentalWarning: The Fetch API is an experimental feature`. This is emitted by Node itself, not by this library.
## Proxies / custom fetch
Unlike axios, Node's built-in fetch (undici) does **not** read the `HTTP_PROXY` / `HTTPS_PROXY` / `NO_PROXY`
environment variables. If you run behind a corporate egress proxy, supply your own fetch implementation via the
`fetch` client option — for example one bound to an undici [`ProxyAgent`](https://undici.nodejs.org/#/docs/api/ProxyAgent) dispatcher:
```js
import { ServerClient } from "postmark";
import { ProxyAgent } from "undici";
const dispatcher = new ProxyAgent("http://proxy.internal:8080");
const client = new ServerClient("server-token", {
fetch: (input, init) => fetch(input, { ...init, dispatcher }),
});
```
The same option can be used to inject a mock/instrumented fetch for testing or other transport customization.
## Usage
Please see the [wiki](https://github.com/ActiveCampaign/postmark.js/wiki) for quick start tutorial and detailed instructions about sending email at our [documentation page](https://ActiveCampaign.github.io/postmark.js/).
For details about Postmark API in general, please check out [Postmark developer docs](https://postmarkapp.com/developer).
### Installation
Installing `postmark` javascript library is super simple. Use the following command in your terminal:
```bash
npm install postmark
```
## Migrating from older versions of the library
Please see [wiki](https://github.com/ActiveCampaign/postmark.js/wiki/Migrating-from-older-version) for more details.
## Issues & Comments
Feel free to contact us if you encounter any issues with the library or Postmark API.
Please leave all comments, bugs, requests and issues on the Issues page.
## License
The Postmark JavaScript Library is licensed under the **MIT** license. Please refer to the [LICENSE](https://github.com/ActiveCampaign/postmark.js/blob/main/LICENSE) for more information.