@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: ['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>
@evokegroup/mime
Example using 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 |