⚡ A powerful library to use the Mail.TM and Mail.GW api to receive email
$ npm install mail.tm-api
# Or
$ yarn add mail.tm-api
# Or
$ pnpm add mail.tm-api
# Or
$ bun add mail.tm-api
- Note: All functions are async/await
There is a bunch of way to create an account
const MailTM = require('mail.tm-api');
const account = await MailTM.createAccount();
// Or you can specify the mail address & password
const account = await MailTM.createAccount('ADDRESS', 'PASSWORD');
// Example: MailTM.createAccount('George', 'mySuperDuperPass')
You can create account with only domain
const domain = await MailTM.fetchDomains({ getRandomDomain: true });
const account = await MailTM.createAccount(domain, 'PASSWORD');
// Without password
const account = await MailTM.createAccount(domain);
const MailTM = require('mail.tm-api');
const account = await MailTM.loginAccount('ADDRESS@DOMAIN', 'PASSWORD');
// Login using JWT
const account = await MailTM.loginAccount('TOKEN');
Note: If you have a token, you can use it instead of the address & password
console.log(await account.fetch());
// { id: 'ID', address: 'ADDRESS@DOMAIN', ... }
console.log(await account.delete());
// true
const MailTM = require('mail.tm-api');
console.log(await MailTM.fetchDomains());
// [{ id: 'DOMAIN_ID', domain: 'DOMAIN' }]
// Fetch a specific page
console.log(await MailTM.fetchDomains({ page: 2 }));
// [{ id: 'DOMAIN_ID', domain: 'DOMAIN' }]
// Get random domain
console.log(await MailTM.fetchDomains({ getRandomDomain: true }));
const MailTM = require('mail.tm-api');
MailTM.setConfig({
// Props Here
});
- mailService [Optional & 'mail.tm' | 'mail.gw'] = 'mail.tm': Change mail service
- axiosOptions [Optional & Object] = {}: Axios request options
console.log(account.mails.cache.get('MAIL_ID'));
// { id: 'MAIL_ID', accountId: 'ACCOUNT_ID', ... }
Note: account.mails.cache is a Map object, you can use all Map methods
console.log(await account.mails.fetch('MAIL_ID'));
// { id: 'MAIL_ID', accountId: 'ACCOUNT_ID', ... }
// Or
console.log(await account.mails.cache.get('MAIL_ID').fetch());
// { id: 'MAIL_ID', accountId: 'ACCOUNT_ID', ... }
console.log(await account.mails.fetchAll());
// [{ id: 'MAIL_ID', accountId: 'ACCOUNT_ID', ... }, ...]
// Fetch a specific page
console.log(await account.mails.fetchAll(2));
// [{ id: 'MAIL_ID', accountId: 'ACCOUNT_ID', ... }, ...]
account.on('newMail', email => {
console.log(email);
// { id: 'MAIL_ID', accountId: 'ACCOUNT_ID', ... }
});
console.log(await account.mails.cache.get('MAIL_ID').delete());
// { id: 'MAIL_ID', accountId: 'ACCOUNT_ID', ..., isDeleted: true }
// Or
console.log(await (await account.mails.fetch('MAIL_ID')).delete());
// { id: 'MAIL_ID', accountId: 'ACCOUNT_ID', ..., isDeleted: true }
console.log(await account.mails.cache.get('MAIL_ID').download('PATH.eml'));
// PATH.eml
// Or
console.log(await (await account.mails.fetch('MAIL_ID')).download('PATH.eml'));
// PATH.eml