Package detail

mikromail

mikaelvesavuori13MIT0.0.7

Lightweight replacement for Nodemailer, supporting HTML, international symbols, and more.

email, node

readme

MikroMail

Lightweight replacement for Nodemailer, supporting HTML, international symbols, and more.

Build Status License


  • Supports international symbols
  • Supports HTML emails
  • Defaults to secure transmission
  • Tiny (~4.4 KB gzipped), which is ~13x smaller than Nodemailer
  • Zero dependencies

Usage

Quick Start

import { MikroMail } from 'MikroMail';

const config = {
  user: 'me@mydomain.com',
  password: 'YOUR_PASSWORD_HERE',
  host: 'smtp.email-provider.com'
};

const emailOptions = {
  from: 'me@mydomain.com',
  subject: 'Test Email',
  text: 'Hello!',
  to: 'you@yourdomain.com' // You can also send to multiple recipients: ['sam@acmecorp.cloud', 'sammy@acmecorp.cloud']
};

await new MikroMail({ config }).send(emailOptions);

Bigger example

import { MikroMail } from 'MikroMail';

const sender = 'this-is-me@somewhere-over-the-rainbow.cloud';

const config = {
  // Required
  user: sender,
  password: 'YOUR_PASSWORD_HERE',
  host: 'smtp.your-provider.net',
  // Optional - defaults shown
  port: 465,
  secure: true,
  debug: false,
  maxRetries: 2
};

const emailOptions = {
  // Required
  from: sender,
  subject: 'Test Email',
  text: 'Hello, this is a test email! Hallå, MikroMail has international support for, among others, español, français, português, 中文, 日本語, and Русский!',
  to: 'sam.person@somewhere-over-the-rainbow.cloud',
  // Optional
  cc: ['dat.person@somewhere-over-the-rainbow.cloud'],
  bcc: ['hoo.person@somewhere-over-the-rainbow.cloud'],
  html: `
  <html>
    <head>
      <meta charset="utf-8">
      <style>
        body { font-family: Arial, sans-serif; color: #333; }
        .highlight { color: #0066cc; font-weight: bold; }
      </style>
    </head>
    <body>
      <h1>Hello, this is a test email!</h1>
      <p>Hallå, MikroMail has <span class="highlight">international support</span> for, among others, español, français, português, 中文, 日本語, and Русский!</p>
      <p>It also supports <b>HTML formatting</b> and <i>styling</i>.</p>
    </body>
  </html>
`,
  headers: {
    'X-Priority': '1',
    'X-Custom-Header': 'Custom Value'
  }
};

await new MikroMail({ config }).send(emailOptions);

Testing

Some of the tests require faking an SMTP server. Here we use Mailpit, which will run a server on http://localhost:8025.

  • On a Mac, install Mailpit with brew install mailpit (assuming you have Homebrew)
  • Run Mailpit with brew services start mailpit
  • Stop Mailpit with brew services stop mailpit

License

MIT. See the LICENSE file.