@evokegroup/mailgun
v2.0.2
Published
A lightweight library for sending email via Mailgun.
Downloads
9
Keywords
Readme
@evokegroup/mailgun
A lightweight library for sending email via Mailgun.
Requires NodeJS 18+
Install
npm install @evokegroup/mailgun
MailgunClient
| Property | Type | Default | Description |
| -------- | ---- | ------- | ----------- |
| apiKey | string
| | The Mailgun API key |
| domain | string
| | The sending domain |
| version | string
| v3
| The API version |
constructor()
| Parameter | Type | Default | Description |
| --------- | ---- | ------- | ----------- |
| apiKey | string
| | The Mailgun API key |
| domain | string
| | The sending domain |
| version | string
| v3
| The API version |
import { MailgunClient } from '@evokegroup/mailgun';
const mg = new MailgunClient({ apiKey: '*****', domain: 'my.domain.com' });
Methods
sendAPI()
Sends email via the Mailgun API
| Parameter | Type | Default | Description |
| --------- | ---- | ------- | ----------- |
| from | string ¦ IMailAddress ¦ MailAddress
| | |
| to | (string ¦ IMailAddress ¦ MailAddress)[]
| | |
| cc | (string ¦ IMailAddress ¦ MailAddress)[]
| | |
| bcc | (string ¦ IMailAddress ¦ MailAddress)[]
| | |
| subject | string
| | |
| html | string
| | |
| text | string
| | |
| testmode | boolean
| false
| Sends the request to the Mailgun API but the message will not be sent. |
| args | object
| {}
| Additional API parameters. |
returns Promise<IWebResponse>
import { MailgunClient } from '@evokegroup/mailgun';
const mg = new MailgunClient({ apiKey: '*****', domain: 'my.domain.com' });
mg.sendAPI({
to: ['[email protected]'],
from: { name: 'First Last', address: '[email protected]' },
subject: 'Hello World!',
html: '<!DOCTYPE html>\r\n<html><head><title>World</title></head><body><table cellpadding="0" cellspacing="0" border="0" width="100%"><tr><td><table cellpadding="0" cellspacing="0" border="0" width="450" align="center" bgcolor="#cccccc"><tr><td>HTML - Hello World!</td></tr></table></td></tr></table></body></html>',
text: 'TEXT - Hello World!'
})
.then((response) => {
// do something
})
.catch((ex) => {
// handle error
});
sendMIME()
Sends mail via the Mailgun API MIME method.
| Parameter | Type | Default | Description |
| --------- | ---- | ------- | ----------- |
| message | MimeMessage ¦ IMailgunMimeMessage
| | The MIME message |
| opts | object
| {}
| Additional options |
| opts.forceMultipartAlternative | boolean
| false
| Force the MIME message to be created using multipart/alternative
|
| opts.testmode | boolean
| false
| Sends the request to the Mailgun API but the message will not be sent. |
| opts.args | object
| {}
| Additional API parameters. |
returns Promise<IWebResponse>
Example using @evokegroup/mime
import { MailgunClient } from '@evokegroup/mailgun';
import { MimeMessage } from "@evokegroup/mime";
const mg = new MailgunClient({ apiKey: '*****', domain: 'my.domain.com' });
const message = new MimeMessage();
message.from = { name: 'First Last', address: '[email protected]' };
message.subject = 'Hello World!';
message.to.add('[email protected]');
message.setHTML('<!DOCTYPE html><html><head><title>World</title></head><body><table cellpadding="0" cellspacing="0" border="0" width="100%"><tr><td><table cellpadding="0" cellspacing="0" border="0" width="450" align="center" bgcolor="#cccccc"><tr><td>HTML - Hello World!</td></tr></table></td></tr></table></body></html>');
message.setText('TEXT - Hello World!');
mg.sendMIME(message)
.then((response) => {
// do something
})
.catch((ex) => {
// handle error
});
Example using another means on MIME message creation
import { MailgunClient } from '@evokegroup/mailgun';
function createMimeMessage() {
// Create a MIME message by some means and return it as a string
}
const mg = new MailgunClient({ apiKey: '*****', domain: 'my.domain.com' });
mg.sendMIME({
to: ['[email protected]'], // mailgun requires the recipient list even if it's already in the MIME message
message: createMimeMessage()
})
.then((response) => {
// do something
})
.catch((ex) => {
// handle error
});
static parseMessage()
Parses an incomming message.
| Parameter | Type | Default | Description |
| --------- | ---- | ------- | ----------- |
| message | string
| | |
| all | boolean
| false
| Parse all the data |
returns Record<string, string> ¦ IMailgunMessage
IMailgunMessage
| Property | Type |
| -------- | ---- |
| to | string ¦ IMailAddress
|
| from | string ¦ IMailAddress
|
| subject | string
|
| html | string
|
| text | string
|
IMailgunMimeMessage
| Property | Type |
| -------- | ---- |
| to | (string ¦ IMailAddress ¦ MailAddress)[]
|
| message | string
|