Javascript 如何从NodeJS中的另一个文件读取HTML(用于电子邮件正文)
我对NodeJS是新手。 我开始在一个联系我们的页面上工作,该页面在提交时会向用户发送一封带有以下HTML的确认电子邮件Javascript 如何从NodeJS中的另一个文件读取HTML(用于电子邮件正文),javascript,node.js,html-email,Javascript,Node.js,Html Email,我对NodeJS是新手。 我开始在一个联系我们的页面上工作,该页面在提交时会向用户发送一封带有以下HTML的确认电子邮件 <p>Hello Sujit,</p> <p>Thank you for approaching us.</p> <p>We have received your request and our executive will get in touch with you soon.</p> <p>
<p>Hello Sujit,</p>
<p>Thank you for approaching us.</p>
<p>We have received your request and our executive will get in touch with you soon.</p>
<p>Thank you.</p>
你好Sujit
谢谢你来找我们
我们已收到您的请求,我们的主管将很快与您联系
多谢各位
以下是发送电子邮件的代码:
var mailer = require("nodemailer");
var emailBody = "<HTML above>";
// Use Smtp Protocol to send Email
var smtpTransport = mailer.createTransport("SMTP",{
service: "#######",
auth: {
user: "#########",
pass: "#######"
}
});
var mail = {
from: "######################",
to: params.email,
subject: "Welcome user.",
text: "",
html: emailBody
}
smtpTransport.sendMail(mail, function(error, response){
if(error){
console.log("Mail error:>>");
console.log(error);
}else{
console.log("Message sent: " + response.message);
}
smtpTransport.close();
});
var-mailer=require(“nodemailer”);
var emailBody=“”;
//使用Smtp协议发送电子邮件
var smtpTransport=mailer.createTransport(“SMTP”{
服务:“#######”,
认证:{
用户:“########”,
通过:“#######”
}
});
var邮件={
摘自:“###################”,
致:params.email,
主题:“欢迎用户。”,
正文:“,
html:emailBody
}
smtpTransport.sendMail(邮件,函数(错误,响应){
如果(错误){
日志(“邮件错误:>>”;
console.log(错误);
}否则{
console.log(“发送的消息:+response.Message”);
}
smtpTransport.close();
});
目前,我使用nodeEmailer发送这封邮件,邮件的HTML正文在同一个文件app.js中定义。到目前为止,它运转良好。
但是,有没有办法用变量/占位符来分隔HTML,并将其放在其他文件中,以便直接管理正文内容?我可以通过某种方式将正文内容加载到变量emailBody
谢谢。是的!!创建一个名为“templates”的文件夹,用于为特定电子邮件创建文本文件。比如welcome.txt。在welcome.txt中编写如下代码
<p>Hello #name,</p>
<p>Thank you for approaching us.</p>
你好#姓名
谢谢你来找我们
然后使用fs模块,您可以像fs.readFile([filepath])一样读取该文件,并将该值存储在变量中。比如var mailContent=fs.readFile([filepath])。然后使用javascript替换函数将#name替换为实际名称。
像mailContent.replace('name','abcd')是!!创建一个名为“templates”的文件夹,用于为特定电子邮件创建文本文件。比如welcome.txt。在welcome.txt中编写如下代码
<p>Hello #name,</p>
<p>Thank you for approaching us.</p>
你好#姓名
谢谢你来找我们
然后使用fs模块,您可以像fs.readFile([filepath])一样读取该文件,并将该值存储在变量中。比如var mailContent=fs.readFile([filepath])。然后使用javascript替换函数将#name替换为实际名称。
与mailContent.replace(“#name”、“abcd”)类似是的,您可以使用键值对维护JSON结构 template.json { “主题”:“确认邮件” “Body”:在HTML之上 } 然后您可以读取这个JSON,或者将它作为参数传递给您的函数 var-template=require('./templates.json) var邮件={
from: "######################",
to: params.email,
subject:template.Subject,
text: "",
html: template.Body
}是的,您可以使用键值对维护JSON结构 template.json { “主题”:“确认邮件” “Body”:在HTML之上 } 然后您可以读取这个JSON,或者将它作为参数传递给您的函数 var-template=require('./templates.json) var邮件={
from: "######################",
to: params.email,
subject:template.Subject,
text: "",
html: template.Body
}Node有许多模块可用于模板制作。Node有许多模块可用于模板制作。我认为这不是一个好方法。如果HTML保存在单独的文件中,UI人员可以很容易地在其中进行更改,因为它将是一个格式相当的HTML。是的,当然,这与要求不同。当需要动态配置多个模板时,这种方法会有所帮助。有了这个,你可以在JSON中配置所有模板和主题,HTML和主题的映射可以在同一个地方进行配置。如果HTML保存在单独的文件中,UI人员可以很容易地在其中进行更改,因为它将是一个格式相当的HTML。是的,当然,这与要求不同。当需要动态配置多个模板时,这种方法会有所帮助。有了它,您可以在JSON中配置所有模板和主题,其中HTML和主题的映射可以在同一个位置进行配置。对于更大的应用程序和更大的HTML电子邮件,使用NodeEmailer的模板将非常有用,但对于如此小的用途,此解决方案是可行的。谢谢对于更大的应用程序和更大的HTML电子邮件,使用NoEmailer的模板将非常有用,但对于如此小的用途,此解决方案将起作用。谢谢