Sou*_*kar 2 javascript node.js express handlebars.js nodemailer
我在我的节点项目中使用了 nodemailer 和车把。电子邮件工作正常,但我无法在车把创建的 html 模板中附加图像。我尝试直接在 html 中将其放在 img src 标记中,但仍然不起作用。我所拥有的是图像是 svg 形式,位于项目的资产文件夹中。
我还在 Nodemailer 官方网站上尝试了该示例,但效果不佳。请帮帮我!
https://nodemailer.com/message/embedded-images/
这是我的函数,当我收到客户端的请求时将调用该函数。
发送电子邮件.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);
}
});
}
);
};
Run Code Online (Sandbox Code Playgroud)
这是我的 html 模板文件
电子邮件模板.html
<html>
<head>
<title> </title>
</head>
<body>
<p>
Dear {{{firstName}}} {{{lastName}}}, your address is {{{address}}}</span
>
</p>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
我想在这个 html 中嵌入一个 svg 图像!
Ahm*_*far 16
只需将附件参数添加到您的 mailoptions 对象中:
var mailOptions = {
from: fromemail,
to: details.email,
subject: "ABC",
attachments: [{
filename: 'imagename.svg',
path: __dirname +'/assets/imagename.svg',
cid: 'imagename'
}],
html: htmlToSend
};
Run Code Online (Sandbox Code Playgroud)
然后在 HTML 中添加 img 标签<img src="cid:imagename">
| 归档时间: |
|
| 查看次数: |
8058 次 |
| 最近记录: |