Ethereal
Ethereal is a fake SMTP service, mostly aimed at Nodemailer and EmailEngine users (but not limited to). It's a completely free anti-transactional email service where messages never get delivered.
Use it as a safe email sandbox for development: generate a throwaway SMTP account right from Nodemailer, send an email using that account just as you would with any other SMTP provider and preview the caught message here — no emails are actually delivered and no real inbox is ever spammed.
IMAP/POP3
Ethereal addresses act as real IMAP/POP3 accounts. You can access sent and received messages using your favorite email client, whatever that happens to be.
Inbound
Accounts created by EmailEngine subscribers also receive external email. For public accounts inbound is disabled and messages sent to these addresses bounce. Learn more
Automatic
All account registration can be handled by the Nodemailer API. If you have lost authentication details for a previous account, then just create a new one.
How it works
-
Step 1
Create a test account
Call
nodemailer.createTestAccount()or click the button above — you get SMTP credentials instantly, no signup or email verification required. -
Step 2
Send email over SMTP
Point your app at
smtp.ethereal.emailand send to any recipient address, real or made up. Every message is caught; nothing is ever delivered. -
Step 3
Preview the message
Open the preview URL from
getTestMessageUrl(), browse the mailbox here, or read messages back over IMAP/POP3.
Messages caught in the last 15 days
Self-contained example
// Use at least Nodemailer v4.1.0
const nodemailer = require('nodemailer');
// Generate SMTP service account from ethereal.email
nodemailer.createTestAccount((err, account) => {
if (err) {
console.error('Failed to create a testing account. ' + err.message);
return process.exit(1);
}
console.log('Credentials obtained, sending message...');
// Create a SMTP transporter object
let transporter = nodemailer.createTransport({
host: account.smtp.host,
port: account.smtp.port,
secure: account.smtp.secure,
auth: {
user: account.user,
pass: account.pass
}
});
// Message object
let message = {
from: 'Sender Name <sender@example.com>',
to: 'Recipient <recipient@example.com>',
subject: 'Nodemailer is unicode friendly ✔',
text: 'Hello to myself!',
html: '<p><b>Hello</b> to myself!</p>'
};
transporter.sendMail(message, (err, info) => {
if (err) {
console.log('Error occurred. ' + err.message);
return process.exit(1);
}
console.log('Message sent: %s', info.messageId);
// Preview only available when sending through an Ethereal account
console.log('Preview URL: %s', nodemailer.getTestMessageUrl(info));
});
});
Credentials obtained, sending message...
Message sent: <b658f8ca-6296-ccf4-8306-87d57a0b4321@example.com>
Preview URL: https://ethereal.email/message/WaPu7QsssRQCysQBWaPu7nSCFzXO....