@telligro/opal-node-email
v0.3.1
Published
OPAL nodes to send and receive emails
Downloads
1
Readme
opal-node-email
This module is part of the OPAL framework
Nodes:
- email send
- email listen
Email Send
Sends the msg.payload
as an email, with a subject of msg.topic
.
The default message recipient can be configured in the node, if it is left blank it should be set using the msg.to property of the incoming message. If left blank you can also specify msg.cc
and/or msg.bcc
properties.
You may optionally set msg.from
in the payload which will override the userid default value.
The payload can be html format.
If the payload is a binary buffer then it will be converted to an attachment. The filename should be set using msg.filename
. Optionally msg.description
can be added for the body text.
Alternatively you may provide msg.attachments
which should contain an array of one or more attachments in nodemailer format.
If required by your recipient you may also pass in a msg.envelope
object, typically containing extra from and to properties.
Note: uses SMTP with SSL to port 465.
Email Listen
Repeatedly gets a single email from an IMAP server and forwards on as a msg if not already seen.
The subject is loaded into msg.topic
and msg.payload
is the plain text body. If there is text/html then that is returned in msg.html
. msg.from
and msg.date
are also set if you need them.
Additionally msg.header
contains the complete header object including to, cc and other potentially useful properties.
Uses the imap module.
Note: this node only gets the most recent single email from the inbox, so set the repeat (polling) time appropriately.
Note: uses IMAP with SSL to port 993.
Any attachments supplied in the incoming email can be found in the msg.attachments
property. This will be an array of objects where each object represents a specific attachments. The format of the object is:
{
contentType: // The MIME content description
fileName: // A suggested file name associated with this attachment
transferEncoding: // How was the original email attachment encodded?
contentDisposition: // Unknown
generatedFileName: // A suggested file name associated with this attachment
contentId: // A unique generated ID for this attachment
checksum: // A checksum against the data
length: // Size of data in bytes
content: // The actual content of the data contained in a Node.js Buffer object
// We can turn this into a base64 data string with content.toString('base64')
}