gpt4 book ai didi

javascript - 如何使用 Node 电子邮件模板作为初始化/操作样式对象?

转载 作者:太空宇宙 更新时间:2023-11-03 22:37:25 26 4
gpt4 key购买 nike

(欢迎对上面的行话提出建议)

我正在尝试从 Node 控制台应用程序设置一个简单的电子邮件发送器。之后reading this answer node-email-templates 似乎是正确的选择。但我不知道如何让这个库在“现在初始化,稍后使用”样式对象中工作。示例代码没有这样做,它是 initializing the object and sending at the same time 。 Node-mailer 给出了我习惯的风格的一个很好的例子:

var nodemailer = require("nodemailer");

// create reusable transport method (opens pool of SMTP connections)
var smtpTransport = nodemailer.createTransport("SMTP",{
service: "Gmail",
auth: {
user: "gmail.user@gmail.com",
pass: "userpass"
}
});

// setup e-mail data with unicode symbols
var mailOptions = {
from: "Fred Foo ✔ <foo@blurdybloop.com>", // sender address
to: "bar@blurdybloop.com, baz@blurdybloop.com", // list of receivers
subject: "Hello ✔", // Subject line
text: "Hello world ✔", // plaintext body
html: "<b>Hello world ✔</b>" // html body
}

// send mail with defined transport object
smtpTransport.sendMail(mailOptions, function(error, response){
if(error){
console.log(error);
}else{
console.log("Message sent: " + response.message);
}

// if you don't want to use this transport object anymore,
// uncomment following line:
// smtpTransport.close(); // shut down the connection pool, no more messages
});

我真正想做的事情:

// require node-email-templates 

// setup smtp transport, store it as a property of another object,
// let's call it Alert

// when an alert needs to send an email it will pick a template
// name and tell node-email-templates to send that template,
// with appropriate local variables

这看起来并不奇怪,但如果我能根据提供的示例代码让它工作,那就太糟糕了。

最佳答案

查看源代码并发现 Node 电子邮件模板的主要条目被构造为事件驱动的流程后,我怀疑您无需付出大量努力即可完成所需的工作。

如果这没有阻止您,您可以考虑从模块的 main.js 函数入口点提取渲染器的创建和传输等内容,并重构它以包含更多表示 pre 的参数。 -配置您需要的资源。

另一种可能的方法可能是在主入口函数中添加对外部定义的事件处理程序的调用,以设置对外部资源的引用。

应该注意的是,这两项更改都会限制您在不丢失修改的情况下更新现有模块的能力。

但是在编写该库时,没有简单的方法可以在不修改其源代码的情况下将本质上是事件驱动的过程转换为线性的过程过程。

关于javascript - 如何使用 Node 电子邮件模板作为初始化/操作样式对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24519593/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com