Node.js 使用带有HTML正文的Nodejs发送邮件
我正在尝试使用NodeEmailer从我的服务器发送电子邮件。不幸的是,由于这个错误,我无法测试它:Node.js 使用带有HTML正文的Nodejs发送邮件,node.js,ecmascript-6,nodemailer,template-strings,Node.js,Ecmascript 6,Nodemailer,Template Strings,我正在尝试使用NodeEmailer从我的服务器发送电子邮件。不幸的是,由于这个错误,我无法测试它: D:\Full Stack\Node\NodeLoginJWT\functions\password.js:58 'This token is valid only within two minutes.' ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ SyntaxError: Unexpected string a
D:\Full Stack\Node\NodeLoginJWT\functions\password.js:58
'This token is valid only within two minutes.'
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
SyntaxError: Unexpected string
at createScript (vm.js:56:10)
at Object.runInThisContext (vm.js:97:10)
at Module._compile (module.js:542:28)
at Object.Module._extensions..js (module.js:579:10)
at Module.load (module.js:487:32)
at tryModuleLoad (module.js:446:12)
at Function.Module._load (module.js:438:3)
at Module.require (module.js:497:17)
at require (internal/module.js:20:19)
at Object.<anonymous> (D:\Full Stack\Node\NodeLoginJWT\routes.js:9:18)
at Module._compile (module.js:570:32)
at Object.Module._extensions..js (module.js:579:10)
at Module.load (module.js:487:32)
at tryModuleLoad (module.js:446:12)
at Function.Module._load (module.js:438:3)
at Module.require (module.js:497:17)
[nodemon] app crashed - waiting for file changes before starting...
D:\Full Stack\Node\NodeLoginJWT\functions\password.js:58
'此令牌仅在两分钟内有效。'
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
SyntaxError:意外的字符串
在createScript上(vm.js:56:10)
在Object.runInThisContext(vm.js:97:10)
在模块处编译(Module.js:542:28)
在Object.Module.\u extensions..js(Module.js:579:10)
在Module.load(Module.js:487:32)
在tryModuleLoad时(module.js:446:12)
在Function.Module.\u加载(Module.js:438:3)
at Module.require(Module.js:497:17)
根据需要(内部/module.js:20:19)
反对。(D:\Full Stack\Node\NodeLoginJWT\routes.js:9:18)
在模块处编译(Module.js:570:32)
在Object.Module.\u extensions..js(Module.js:579:10)
在Module.load(Module.js:487:32)
在tryModuleLoad时(module.js:446:12)
在Function.Module.\u加载(Module.js:438:3)
at Module.require(Module.js:497:17)
[nodemon]应用程序崩溃-正在等待文件更改,然后再启动。。。
这是导致错误的代码块:
const transporter = nodeMailer.createTransport(`smtps://${config.email}:${config.password}@smtp.gmail.com`);
const mailOptions = {
from: `"${conifg.name}" <${config.email}>`,
to: email,
subject: 'Reset Password',
html: `Hello ${user.name}`,
'Your account password token is ${random}'
'This token is valid only within two minutes.'
'Thanks,'
'Team. '
};
return transporter.sendMail(mailOptions);
const transporter=nodeMailer.createTransport(`smtps://${config.email}:${config.password}@smtp.gmail.com`);
常量邮件选项={
发件人:`${conifg.name}`,
致:电邮:,
主题:“重置密码”,
html:`Hello${user.name}`,
'您的帐户密码令牌为${random}'
'此令牌仅在两分钟内有效。'
“谢谢,”
“团队。”
};
返回transporter.sendMail(邮件选项);
我认为你的插值有问题
const mailOptions = {
from: `"${conifg.name}" <${config.email}>`,
to: email,
subject: 'Reset Password',
html: `Hello ${user.name}, // the tick should not come here
'Your account password token is ${random}'
'This token is valid only within two minutes.'
'Thanks,'
'Team. '` // the tick should come here
};
const mailpoptions={
发件人:`${conifg.name}`,
致:电邮:,
主题:“重置密码”,
html:`Hello${user.name},//勾号不应该出现在这里
'您的帐户密码令牌为${random}'
'此令牌仅在两分钟内有效。'
“谢谢,”
“团队”。“//蜱应该到这里来
};
我认为你的插值有问题
const mailOptions = {
from: `"${conifg.name}" <${config.email}>`,
to: email,
subject: 'Reset Password',
html: `Hello ${user.name}, // the tick should not come here
'Your account password token is ${random}'
'This token is valid only within two minutes.'
'Thanks,'
'Team. '` // the tick should come here
};
const mailpoptions={
发件人:`${conifg.name}`,
致:电邮:,
主题:“重置密码”,
html:`Hello${user.name},//勾号不应该出现在这里
'您的帐户密码令牌为${random}'
'此令牌仅在两分钟内有效。'
“谢谢,”
“团队”。“//蜱应该到这里来
};
我正在使用NodeEmailer,以下是我的代码:
var express = require('express');
var router = express.Router();
var nodemailer = require('nodemailer');
router.post('/', handleSendEmail); // handle the route at yourdomain.com/sayHello
function handleSendEmail(req, res) {
// Not the movie transporter!
var transporter = nodemailer.createTransport({
service: 'Gmail',
auth: {
user: '', // Your email id
pass: ‘’// Your password
}
});
var text = 'Hello from \n\n' + req.body.user_name;
var mailOptions = {
from: 'sender@gmail.com', // sender address
to: 'receiver@gmail.com', // list of receivers
subject: 'Appointment Email Example', // Subject line
text: text,
html: '<!DOCTYPE html>'+
'<html><head><title>Appointment</title>'+
'</head><body><div>'+
'<img src="http://evokebeautysalon1.herokuapp.com/main/img/logo.png" alt="" width="160">'+
'<p>Thank you for your appointment.</p>'+
'<p>Here is summery:</p>'+
'<p>Name: James Falcon</p>'+
'<p>Date: Feb 2, 2017</p>'+
'<p>Package: Hair Cut </p>'+
'<p>Arrival time: 4:30 PM</p>'+
'</div></body></html>'
};
transporter.sendMail(mailOptions, function(error, info){
if(error){
console.log(error);
res.json({yo: 'error'});
}else{
console.log('Message sent: ' + info.response);
res.json({yo: info.response});
};
});
}
module.exports = router;
var express=require('express');
var router=express.router();
var nodeEmailer=require('nodeEmailer');
router.post(“/”,HandleSendMail);//在yourdomain.com/sayHello处理路由
功能HandleSendMail(请求、回复){
//不是电影传送者!
var transporter=nodeEmailer.createTransport({
服务:“Gmail”,
认证:{
用户:“”,//您的电子邮件id
传递:“”//您的密码
}
});
var text='Hello from\n\n'+req.body.user\u name;
var mailpoptions={
发件人:'sender@gmail.com“,//发件人地址
致:'receiver@gmail.com“,//接收者列表
主题:'约会电子邮件示例',//主题行
文本:文本,
html:'+
“任命”+
''+
''+
“谢谢您的预约。”+
“这里是夏天:”+
“姓名:詹姆斯·法尔肯”+
“日期:2017年2月2日”+
“套餐:理发”+
到达时间:下午4:30+
''
};
transporter.sendMail(邮件选项,函数(错误,信息){
如果(错误){
console.log(错误);
res.json({yo:'error'});
}否则{
console.log('发送的消息:'+信息响应);
res.json({yo:info.response});
};
});
}
module.exports=路由器;
我正在使用NodeEmailer,以下是我的代码:
var express = require('express');
var router = express.Router();
var nodemailer = require('nodemailer');
router.post('/', handleSendEmail); // handle the route at yourdomain.com/sayHello
function handleSendEmail(req, res) {
// Not the movie transporter!
var transporter = nodemailer.createTransport({
service: 'Gmail',
auth: {
user: '', // Your email id
pass: ‘’// Your password
}
});
var text = 'Hello from \n\n' + req.body.user_name;
var mailOptions = {
from: 'sender@gmail.com', // sender address
to: 'receiver@gmail.com', // list of receivers
subject: 'Appointment Email Example', // Subject line
text: text,
html: '<!DOCTYPE html>'+
'<html><head><title>Appointment</title>'+
'</head><body><div>'+
'<img src="http://evokebeautysalon1.herokuapp.com/main/img/logo.png" alt="" width="160">'+
'<p>Thank you for your appointment.</p>'+
'<p>Here is summery:</p>'+
'<p>Name: James Falcon</p>'+
'<p>Date: Feb 2, 2017</p>'+
'<p>Package: Hair Cut </p>'+
'<p>Arrival time: 4:30 PM</p>'+
'</div></body></html>'
};
transporter.sendMail(mailOptions, function(error, info){
if(error){
console.log(error);
res.json({yo: 'error'});
}else{
console.log('Message sent: ' + info.response);
res.json({yo: info.response});
};
});
}
module.exports = router;
var express=require('express');
var router=express.router();
var nodeEmailer=require('nodeEmailer');
router.post(“/”,HandleSendMail);//在yourdomain.com/sayHello处理路由
功能HandleSendMail(请求、回复){
//不是电影传送者!
var transporter=nodeEmailer.createTransport({
服务:“Gmail”,
认证:{
用户:“”,//您的电子邮件id
传递:“”//您的密码
}
});
var text='Hello from\n\n'+req.body.user\u name;
var mailpoptions={
发件人:'sender@gmail.com“,//发件人地址
致:'receiver@gmail.com“,//接收者列表
主题:'约会电子邮件示例',//主题行
文本:文本,
html:'+
“任命”+
''+
''+
“谢谢您的预约。”+
“这里是夏天:”+
“姓名:詹姆斯·法尔肯”+
“日期:2017年2月2日”+
“套餐:理发”+
到达时间:下午4:30+
''
};
transporter.sendMail(邮件选项,函数(错误,信息){
如果(错误){
console.log(错误);
res.json({yo:'error'});
}否则{
console.log('发送的消息:'+信息响应);
res.json({yo:info.response});
};
});
}
module.exports=路由器;
这是html行正下方的第56行,从“我们的帐户…”开始这是第56行,就在html行的下面,从“我们的帐户…”开始这更优雅,但问题已经解决了。谢谢这更优雅,但问题已经解决了。谢谢