[英]How to store email in variables and send it with node.js
const functions = require('firebase-functions'); var nodemailer = require('nodemailer'); var transporter=nodemailer.createTransport('smtps://username@gmail.com:password@smtp.gmail.com'); exports.sendMail=functions.https.onRequest((req,res)=>{ var mailOptions={ to: 'sender@gmail.com', subject: 'Test Mail', html: 'Testing with Node.js' } transporter.sendMail(mailOptions,function(err,response){ if(err) { res.send('Mail not sent'); console.log(err); } else{ res.send('Mail sent'); } }); });
我想随着时间的推移向各个人发送电子邮件。 我想动态更改此代码中的to:地址。 那么如何从另一个JavaScript文件中获取特定(sendermailid)变量并发送给该人。 我的文件夹位于图片下方。 如何从assmt.js到index.js(云函数js)获取变量。
您需要设置一个快速服务器来监听我们的其他JS应用程序,如下所示:
var express = require('express');
var app = express();
现在,您可以从指定端口上的另一个应用程序监听:
var port = process.env.PORT || 8080;
app.listen(port);
console.log("App listening on port " + port);
最后,您必须拦截http post请求以发送邮件并从请求中获取用户信息:
app.post('/api/sendmail', function(req, res) {
var mail = {
from: req.body.user.emailFrom,
to: req.body.user.emailTo,
subject: "your subject",
html: "<p>email body</p>"
}
transporter.sendMail(mail, function(error, response){
if(error){
console.log("Error!");
console.log(error);
res.send(JSON.stringify(error));
}else{
res.send(JSON.stringify(response));
console.log("Success!")
transporter.close();
}
}
现在您的服务器已准备就绪,您可以使用以下命令启动它:
节点serverName.js
然后在另一个js文件(assmt.js)中发送带有参数的http请求:
send(user : User) {
let body = {user};
this.httpClient.post('http://localhost:8080/api/sendconge', body)
.subscribe(function(data) {
console.log(data);
});
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.