包详细信息

mikromail

mikaelvesavuori13MIT0.0.7

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

email, node

自述文件

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.