/Meteor 1.5


Documentation of Meteor's email API.

The email package allows sending email from a Meteor app. To use it, add the package to your project by running in your terminal:

meteor add email

The server reads from the MAIL_URL environment variable to determine how to send mail. The MAIL_URL should reference an SMTP server and use the form smtp://USERNAME:[email protected]:PORT or smtps://USERNAME:[email protected]:PORT. The smtps:// form (the s is for “secure”) should be used if the mail server requires TLS/SSL (and does not use STARTTLS) and is most common on port 465. Connections which start unencrypted prior to being upgraded to TLS/SSL (using STARTTLS) typically use port 587 (and sometimes 25) and should use smtp://. For more information see the Nodemailer docs

If MAIL_URL is not set, Email.send outputs the message to standard output instead.

import { Email } from 'meteor/email' (email/email.js, line 145)

Send an email. Throws an Error on failure to contact mail server or if mail server returns an error. All fields should match RFC5322 specification.

If the MAIL_URL environment variable is set, actually sends the email. Otherwise, prints the contents of the email to standard out.

Note that this package is based on mailcomposer 4, so make sure to refer to the documentation for that version when using the attachments or mailComposer options.


from String

"From:" address (required)

to, cc, bcc, replyTo String or Array of Strings

"To:", "Cc:", "Bcc:", and "Reply-To:" addresses

inReplyTo String

Message-ID this message is replying to

references String or Array of Strings

Array (or space-separated string) of Message-IDs to refer to

messageId String

Message-ID for this message; otherwise, will be set to a random value

subject String

"Subject:" line

text, html String

Mail body (in plain text and/or HTML)

watchHtml String

Mail body in HTML specific for Apple Watch

icalEvent String

iCalendar event attachment

headers Object

Dictionary of custom headers

attachments Array of Objects

Array of attachment objects, as described in the mailcomposer documentation.

mailComposer MailComposer

A MailComposer object representing the message to be sent. Overrides all other options. You can create a MailComposer object via new EmailInternals.NpmModules.mailcomposer.module.

You must provide the from option and at least one of to, cc, and bcc; all other options are optional.

Email.send only works on the server. Here is an example of how a client could use a server method call to send an email. (In an actual application, you’d need to be careful to limit the emails that a client could send, to prevent your server from being used as a relay by spammers.)

// Server: Define a method that the client can call.
  sendEmail(to, from, subject, text) {
    // Make sure that all arguments are strings.

    check([to, from, subject, text], [String]);

    // Let other method calls from the same client start running, without

    // waiting for the email sending to complete.


    Email.send({ to, from, subject, text });

// Client: Asynchronously send an email.
  'Alice <[email protected]>',
  '[email protected]',
  'Hello from Meteor!',
  'This is a test of Email.send.'


© 2011–2017 Meteor Development Group, Inc.
Licensed under the MIT License.