我如何在Node js的帮助下从angular发送电子邮件模板
我想通过angular和node js发送电子邮件模板。我正在从angular获取值。我正在尝试使用angular和node js发送电子邮件模板,但我无法发送邮件。节点js代码在下面
server.js
const nodemailer = require('nodemailer'),
express = require('express');
cors = require('cors');
const bodyParser = require('body-parser');
const details = require("./details.json");
// Init应用
const app = express();
//交叉连接
app.use(cors({ origin: "*" }));
// Body解析器中间件
app.use(bodyParser.urlencoded({extended: true}));
app.use(bodyParser.json());
//定义端口
port = 3000;
//启动服务器
app.listen(port, function(){
console.log(`Server is running at port: ${port}`);
});
transporter = nodemailer.createTransport({
service: 'gmail',
auth: {
user: details.email,
pass: details.password,
},
}),
EmailTemplate = require('email-templates').EmailTemplate,
path = require('path'),
Promise = require('bluebird');
function sendEmail (obj) {
return transporter.sendMail(obj);
}
//模板选择功能
function loadTemplate (templateName, contexts) {
let template = new EmailTemplate(path.join(__dirname, 'templates',
templateName));
return Promise.all(contexts.map((context) => {
return new Promise((resolve, reject) => {
template.render(context, (err, result) => {
if (err) reject(err);
else resolve({
email: result,
context,
});
});
});
}));
}
//从Angular获取值
app.post('/sendmail', function (req, res){
let rgData = req.body;
loadTemplate('registration', rgData).then((results) => {
return Promise.all(results.map((result) => {
sendEmail({
to: result.context.email,
from: 'Felix Its :)',
subject: result.email.subject,
html: result.email.html,
text: result.email.text,
});
}));
}).then(() => {
console.log('Email Successfully Sent');
});
transporter.sendMail(mailOptions, (error, info) => {
if (error) {
return console.log(error);
}
console.log('Message %s sent: %s', info.messageId, info.response);
res.render('index');
});
});
这是发送电子邮件模板的代码。我从角度获取值并发送到节点文件。
回答如下:您应授予此服务中用于发送电子邮件的电子邮件地址的权限。
我如何在Node js的帮助下从angular发送电子邮件模板
我想通过angular和node js发送电子邮件模板。我正在从angular获取值。我正在尝试使用angular和node js发送电子邮件模板,但我无法发送邮件。节点js代码在下面
server.js
const nodemailer = require('nodemailer'),
express = require('express');
cors = require('cors');
const bodyParser = require('body-parser');
const details = require("./details.json");
// Init应用
const app = express();
//交叉连接
app.use(cors({ origin: "*" }));
// Body解析器中间件
app.use(bodyParser.urlencoded({extended: true}));
app.use(bodyParser.json());
//定义端口
port = 3000;
//启动服务器
app.listen(port, function(){
console.log(`Server is running at port: ${port}`);
});
transporter = nodemailer.createTransport({
service: 'gmail',
auth: {
user: details.email,
pass: details.password,
},
}),
EmailTemplate = require('email-templates').EmailTemplate,
path = require('path'),
Promise = require('bluebird');
function sendEmail (obj) {
return transporter.sendMail(obj);
}
//模板选择功能
function loadTemplate (templateName, contexts) {
let template = new EmailTemplate(path.join(__dirname, 'templates',
templateName));
return Promise.all(contexts.map((context) => {
return new Promise((resolve, reject) => {
template.render(context, (err, result) => {
if (err) reject(err);
else resolve({
email: result,
context,
});
});
});
}));
}
//从Angular获取值
app.post('/sendmail', function (req, res){
let rgData = req.body;
loadTemplate('registration', rgData).then((results) => {
return Promise.all(results.map((result) => {
sendEmail({
to: result.context.email,
from: 'Felix Its :)',
subject: result.email.subject,
html: result.email.html,
text: result.email.text,
});
}));
}).then(() => {
console.log('Email Successfully Sent');
});
transporter.sendMail(mailOptions, (error, info) => {
if (error) {
return console.log(error);
}
console.log('Message %s sent: %s', info.messageId, info.response);
res.render('index');
});
});
这是发送电子邮件模板的代码。我从角度获取值并发送到节点文件。
回答如下:您应授予此服务中用于发送电子邮件的电子邮件地址的权限。