Package Exports
- nestjs-mailgun
- nestjs-mailgun/dist/index.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (nestjs-mailgun) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
NestJS Mailgun
Introduction
This is a simple wrapper of mailgun.js. It supports sending, verifying emails and list operations, but later more will be added. Just ping me or open pull request and contribute :)
Installation
yarn add nestjs-mailgun
Usage
Importing module
import { MailgunModule } from 'nestjs-mailgun';
@Module({
imports: [
MailgunModule.forRoot({
username: 'api',
key: 'string',
public_key: 'string', // OPTIONAL
timeout: 'number', // OPTIONAL, in milliseconds
url: 'string', // OPTIONAL, default: 'api.mailgun.net'. Note that if you are using the EU region the host should be set to 'api.eu.mailgun.net'
}),
],
providers: [],
exports: [],
})
export class YourModule {}
Importing module Async
import { MailgunModule } from 'nestjs-mailgun';
@Module({
imports: [
MailgunModule.forAsyncRoot({
useFactory: async () => {
return {
username: 'api',
key: 'string',
public_key: 'string', // OPTIONAL
timeout: 'number', // OPTIONAL, in milliseconds
url: 'string', // OPTIONAL, default: 'api.mailgun.net'. Note that if you are using the EU region the host should be set to 'api.eu.mailgun.net'
};
},
}),
],
providers: [],
exports: [],
})
export class YourModule {}
Calling Send Method
import { MailgunService } from 'nestjs-mailgun';
import { MailgunMessageData } from 'nestjs-mailgun'
@Injectable()
export class YourService {
constructor(private mailgunService: MailgunService) {
const options: MailgunMessageData = {
from: '',
to: '',
subject: '',
text: '',
html: '',
attachment: '',
cc: '',
bcc: '',
'o:testmode': 'no',
'h:X-Mailgun-Variables': '{"key":"value"}',
};
await this.mailgunService.createEmail(domain, data);
}
}
Calling Verify Method
To check if an email is real or not.
import { MailgunService } from 'nestjs-mailgun';
@Injectable()
export class YourService {
constructor(private mailgunService: MailgunService) {
await this.mailgunService.validateEmail('next@examle.com');
}
}
Create List Method
To create a list of emails you need parameter data type CreateUpdateList which contain
import { MailgunService } from 'nestjs-mailgun';
@Injectable()
export class YourService {
constructor(private mailgunService: MailgunService) {
await this.mailgunService.createList(data);
}
}
Destroy List Method
To destroy a list of emails
import { MailgunService } from 'nestjs-mailgun';
@Injectable()
export class YourService {
constructor(private mailgunService: MailgunService) {
await this.mailgunService.destroyList('mailListAddress@n.com');
}
}
Get List Method
To Get a list of emails
import { MailgunService } from 'nestjs-mailgun';
@Injectable()
export class YourService {
constructor(private mailgunService: MailgunService) {
await this.mailgunService.getList('mailListAddress@n.com');
}
}
Update List Method
To Update a list of emails data is an object like:
{ address: string; name?: string; description?: string; access_level?: 'readonly' | 'members' | 'everyone'; reply_preference?: 'list' | 'sender'; }
import { MailgunService } from 'nestjs-mailgun';
@Injectable()
export class YourService {
constructor(private mailgunService: MailgunService) {
await this.mailgunService.updateList('mailListAddress@n.com', data);
}
}
Add member to a List
To add a member to the list data is an object like:
{ address: string; name?: string; vars?: string; subscribed?: 'yes' | 'no' | boolean; upsert?: 'yes' | 'no'; }
import { MailgunService } from 'nestjs-mailgun';
@Injectable()
export class YourService {
constructor(private mailgunService: MailgunService) {
await this.mailgunService.listAddMember('mailListAddress@n.com', data);
}
}
Get members of a List
To get a member of the list Query is an object like:
{ subscribed?: 'yes' | 'no'; limit?: number; }
import { MailgunService } from 'nestjs-mailgun';
@Injectable()
export class YourService {
constructor(private mailgunService: MailgunService) {
await this.mailgunService.listGetMembers('mailListAddress@n.com', query);
}
}
Update members of a List
To update member of the list
import { MailgunService } from 'nestjs-mailgun';
@Injectable()
export class YourService {
constructor(private mailgunService: MailgunService) {
await this.mailgunService.listupdateMember(
'mailListAddress@n.com',
'memberAddress',
data,
);
}
}
Destroy member of a List
To destroy member of the list
import { MailgunService } from 'nestjs-mailgun';
@Injectable()
export class YourService {
constructor(private mailgunService: MailgunService) {
await this.mailgunService.listDestroyMember(
'mailListAddress@n.com',
'memberAddress',
);
}
}
Contributing
Contributions welcome! See Contributing.
Notes
This project is not endorsed by or affiliated with Mailgun.
Author
Stanislav V Vyaliy Site Nuno Carvalhão Site
License
Licensed under the MIT License - see the LICENSE file for details.