2.0.2 • Published 2 years ago
@evokegroup/mailgun v2.0.2
@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: ['john.doe@domain.com'],
from: { name: 'First Last', address: 'first.last@domain.com' },
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: 'first.last@domain.com' };
message.subject = 'Hello World!';
message.to.add('john.doe@domain.com');
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: ['john.doe@domain.com'], // 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 |