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. Currently, Meteor supports sending mail over SMTP; the MAIL_URL
environment variable should be of the form smtp://USERNAME:PASSWORD@HOST:PORT/
.
If MAIL_URL
is not set, Email.send
outputs the message to standard output instead.
Server Email.send(options)
import { Email } from 'meteor/email'
(email/email.js, line 154)
import { Email } from 'meteor/email'
(email/email.js, line 154) 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 version 0.1.15
, so make sure to refer to the documentation for that version if using the attachments
or mailComposer
options. Click here to read the mailcomposer 0.1.15 docs.
Options
-
from
String -
"From:" address (required)
-
to, cc, bcc, replyTo
String or Array of Strings -
"To:", "Cc:", "Bcc:", and "Reply-To:" addresses
-
subject
String -
"Subject:" line
-
text, html
String -
Mail body (in plain text and/or HTML)
-
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 access the
mailcomposer
npm module atEmailInternals.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.)
// In your server code: define a method that the client can call Meteor.methods({ sendEmail: function (to, from, subject, text) { check([to, from, subject, text], [String]); // Let other method calls from the same client start running, // without waiting for the email sending to complete. this.unblock(); Email.send({ to: to, from: from, subject: subject, text: text }); } }); // In your client code: asynchronously send an email Meteor.call('sendEmail', '[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.
https://docs.meteor.com/v1.3.5/api/email.html