Я использую nodemailer вместе с рулем в моем проекте node. Письмо работает нормально, но я не могу прикрепить изображение в HTML-шаблон, созданный рулем. Я попытался дать его в тег IMG SRC непосредственно в HTML, но все еще не работает. То, что у меня есть, это то, что изображение в виде SVG и в моей папке активов проекта.
Я также попробовал пример на официальном сайте nodemailer, который также не работал. Пожалуйста, помогите мне!
https://nodemailer.com/message/embedded-images/
Это моя функция, которая будет вызываться при получении запроса от клиента.
sendEmail.js
var nodemailer = require("nodemailer");
const emailConfig = require("../readEmailConfigFile");
//reading username and password from json file
let fromemail = emailConfig.readFromEmail();
let password = emailConfig.readFromPassword();
var handlebars = require("handlebars");
var fs = require("fs");
const readHTMLFile = function(path, callback) {
fs.readFile(path, { encoding: "utf-8" }, function(err, html) {
if (err) {
throw err;
callback(err);
} else {
callback(null, html);
}
});
};
/* Method for sending Email */
const sendEmail = (details) => {
var transporter = nodemailer.createTransport({
service: "gmail",
auth: {
user: fromemail,
pass: password
}
});
readHTMLFile(
__dirname + "/../emailTemplates/EmailTemplate.html",
function(err, html) {
var template = handlebars.compile(html);
var replacements = {
firstName: details.firstName,
lastName: details.lastName,
address: details.address,
};
var htmlToSend = template(replacements);
var mailOptions = {
from: fromemail,
to: details.email,
subject: "ABC",
html: htmlToSend
};
transporter.sendMail(mailOptions, function(error, info) {
if (error) {
console.log(error);
callback(error);
} else {
console.log("Email Sent : " + info.response);
}
});
}
);
};
Это мой файл html-шаблона
EmailTemplate.html
<html>
<head>
<title> </title>
</head>
<body>
<p>
Dear {{{firstName}}} {{{lastName}}}, your address is {{{address}}}</span
>
</p>
</body>
</html>
Я хочу вставить изображение SVG в этот HTML!