@evokegroup/mailgun
TypeScript icon, indicating that this package has built-in type declarations

2.0.2 • Public • Published

@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>

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

Readme

Keywords

none

Package Sidebar

Install

npm i @evokegroup/mailgun

Weekly Downloads

11

Version

2.0.2

License

ISC

Unpacked Size

18.4 kB

Total Files

5

Last publish

Collaborators

  • ybevoke
  • jtsuyuki
  • evokejames
  • evoke-cjamodeo