@evokegroup/mailgun
v2.0.2
Published
A lightweight library for sending email via Mailgun.
Keywords
Readme
@evokegroup/mailgun
A lightweight library for sending email via Mailgun.
Requires NodeJS 18+
Install
npm install @evokegroup/mailgunMailgunClient
| 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 |
