This module provides promisified version of smtp-connection
from
nodemailer
module. The API is the
same as for smtp-connection
, except that all methods return
Promise
objects.
This module requires Node >= 6.
npm install smtp-connection-as-promised
Additionally for Typescript:
npm install @types/node @types/nodemailer
const {SMTPConnectionAsPromised} = require("smtp-connection-as-promised")
Typescript:
import SMTPConnectionAsPromised from "smtp-connection-as-promised"
// or
import {SMTPConnectionAsPromised} from "smtp-connection-as-promised"
const connection = new SMTPConnectionAsPromised(options)
Create new SMTPConnection instance. Options are the same as for original
smtp-connection
constructor.
Example:
const connection = new SMTPConnectionAsPromised({
opportunisticTLS: true,
host: "smtp.example.com",
port: 25,
})
const isEnded = connection.ended
It is true
if connection is already ended.
const isSecure = connection.secure
It is true
if connection uses TLS.
await connection.connect()
console.log(connection.secure)
Establish the connection and set the secure
property.
await connection.login(auth)
Login to the server if requires authentication.
auth
is the authentication object with user
, pass
and xoauth2
properties.
Example:
await connection.login({
user: "from@example.com",
pass: "secret",
})
const info = await connection.send(envelope, message)
Send a message with an envelope. The info
object is returned in a Promise.
Example:
const envelope = {
from: "from@example.com",
to: "to@example.net",
}
// prettier-ignore
const message =
'' +
'From: from@example.com\n' +
'To: to@example.net\n' +
'Subject: test\n' +
'\n' +
'Test\n'
const info = await connection.send(envelope, message)
console.log(info.response)
await connection.quit()
Graceful SMTP session ending. The QUIT
command is sent.
await connection.close()
Disconnecting of SMTP session.
await connection.reset()
Reseting the SMTP session. The RSET
command is set.
await connection.destroy()
Manually free resources taken by connection.
Copyright (c) 2016-2019 Piotr Roszatycki piotr.roszatycki@gmail.com