Security News
Input Validation Vulnerabilities Dominate MITRE's 2024 CWE Top 25 List
MITRE's 2024 CWE Top 25 highlights critical software vulnerabilities like XSS, SQL Injection, and CSRF, reflecting shifts due to a refined ranking methodology.
node-red-contrib-email
Advanced tools
SMTP email node for Node-RED
You can install by using the Menu - Manage Palette option, or running the following command in your Node-RED user directory - typically ~/.node-red
cd ~/.node-red
npm install --save node-red-contrib-email
NodeJS version >= 6.0.0
Node-RED >= 2.0.0
msg.payload
can be used for one of the following message versions. Set the node property payload type to set the version of your msg.payload
.
Set msg.email.attachments
as an array of attachment objects (see Using attachments for details). Attachments can be used for embedding images as well.
msg.email = {
attachments: [
{
// utf-8 string as an attachment
filename: "text1.txt",
content: "hello world!",
},
{
// binary buffer as an attachment
filename: "text2.txt",
content: new Buffer("hello world!", "utf-8"),
},
{
// file on disk as an attachment
filename: "text3.txt",
path: "/path/to/file.txt", // stream this file
},
{
// filename and content type is derived from path
path: "/path/to/file.txt",
},
{
// stream as an attachment
filename: "text4.txt",
content: fs.createReadStream("file.txt"),
},
{
// define custom content type for the attachment
filename: "text.bin",
content: "hello world!",
contentType: "text/plain",
},
{
// use URL as an attachment
filename: "license.txt",
path: "https://raw.github.com/nodemailer/nodemailer/master/LICENSE",
},
{
// encoded string as an attachment
filename: "text1.txt",
content: "aGVsbG8gd29ybGQh",
encoding: "base64",
},
{
// data uri as an attachment
path: "data:text/plain;base64,aGVsbG8gd29ybGQ=",
},
{
// use pregenerated MIME node
raw:
"Content-Type: text/plain\r\n" +
"Content-Disposition: attachment;\r\n" +
"\r\n" +
"Hello world!",
},
],
};
Use the node editor to define the email fields or overwrite this properties with a flow msg:
msg.email = {
from: "foo@example.com",
to: "bar@example.com",
subject: "Test",
text: "This is the plain text version.",
html: "<h1>This is the html version</h1>",
attachments: [
{
// utf-8 string as an attachment
filename: "text1.txt",
content: "hello world!",
}
],
};
Only overwrite email.to:
msg.email = {
to: "receiver@example.com"
};
Example for amp message:
msg.email = {
from: "Nodemailer <example@nodemailer.com>",
to: "Nodemailer <example@nodemailer.com>",
subject: "AMP4EMAIL message",
text: "For clients with plaintext support only",
html: "<p>For clients that do not support AMP4EMAIL or amp content is not valid</p>",
amp: `<!doctype html>
<html ⚡4email>
<head>
<meta charset="utf-8">
<style amp4email-boilerplate>body{visibility:hidden}</style>
<script async src="https://cdn.ampproject.org/v0.js"></script>
<script async custom-element="amp-anim" src="https://cdn.ampproject.org/v0/amp-anim-0.1.js"></script>
</head>
<body>
<p>Image: <amp-img src="https://cldup.com/P0b1bUmEet.png" width="16" height="16"/></p>
<p>GIF (requires "amp-anim" script in header):<br/>
<amp-anim src="https://cldup.com/D72zpdwI-i.gif" width="500" height="350"/></p>
</body>
</html>`,
};
output msg.payload
includes the result, the exact format depends on the transport mechanism used
msg.payload.messageId
- most transports should return the final Message-Id value used with this propertymsg.payload.envelope
includes the envelope object for the messagemsg.payload.accepted
is an array returned by SMTP transports (includes recipient addresses that were accepted by the server)msg.payload.rejected
is an array returned by SMTP transports (includes recipient addresses that were rejected by the server)msg.payload.pending
is an array returned by Direct SMTP transport. Includes recipient addresses that were temporarily rejected together with the server response
response is a string returned by SMTP transports and includes the last SMTP response from the serverSMTP connection is verified at node startup and displayed as node status. Be aware though that this call only tests connection and authentication but it does not check if the service allows you to use a specific envelope From address or not.
This node is based on nodemailer. Read their documentation for a deeper understanding:
Feel free to contact me for any feature request.
Features not implemented yet:
FAQs
SMTP email node for Node-RED
We found that node-red-contrib-email demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 0 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
MITRE's 2024 CWE Top 25 highlights critical software vulnerabilities like XSS, SQL Injection, and CSRF, reflecting shifts due to a refined ranking methodology.
Security News
In this segment of the Risky Business podcast, Feross Aboukhadijeh and Patrick Gray discuss the challenges of tracking malware discovered in open source softare.
Research
Security News
A threat actor's playbook for exploiting the npm ecosystem was exposed on the dark web, detailing how to build a blockchain-powered botnet.