为什么我无法获取发送给用户的电子邮件中的任何内容?
Why can not I get any content in the email sent to the user?
当用户按下 Forgot Password
按钮并键入他的电子邮件时,我正在尝试向用户发送电子邮件。但是用户收到一封空白电子邮件。下面给出代码
const nodemailer = require('nodemailer');
const path = require('path');
const fs = require('fs');
const handlebars = require('handlebars');
// Constants
const Message = require("../Constants/Message.js");
//在这里创建传输
//我正在使用我自己的 gmail 帐户向用户发送他更改密码所需的令牌
function createTransport() {
return nodemailer.createTransport({
host: 'smtp.gmail.com',
secureConnection: true,
port: 465,
auth: {
user: '******@gmail.com',
pass: '*****',
}
});
}
// checking if the transport is created or not
//如果传输还没有准备好,那么一定要给出一个错误
异步函数 verifyTransport(transport) {
let res;
await transport.verify(function(error, success) {
if (error) {
console.log(error);
res = error;
} else {
res = success;
console.log('Server is ready to take our messages');
}
});
return res;
}
//以html的形式发送邮件
//我的html文件是正确的
函数 generateHtmlToSend(文件名)
{
const filePath = path.join(__dirname, '../Mails/'+fileName);
const source = fs.readFileSync(filePath, 'utf-8').toString();
const 模板 = handlebars.compile(来源);
return模板;
}
function setMailOptions(email,subject,fileName)
{
return mailOptions = {
from: 'shehroz.virk147@gmail.com',
to: email,
subject: subject,
html:generateHtmlToSend(fileName),
};
}
async function sendEmail(subject,fileName,email)
{
const transport = createTransport();
const transportVerify = await verifyTransport(transport);
const mailOptions = setMailOptions(email,subject,fileName);
await transport.sendMail(mailOptions, function (error, info) {
if (error) {
console.log(error);
} else {
console.log('Email sent: ' + info.response);
}
});
}
function sendForgotPasswordEmail(email){
sendEmail(
Message.RESET_PASSWORD,
"forgot-password.html",
email);
}
module.exports = {sendForgotPasswordEmail}
我哪里做错了?主要问题是什么??
问题出在你的generateHtmlToSend
,使用return template("UseLinkHere");
当用户按下 Forgot Password
按钮并键入他的电子邮件时,我正在尝试向用户发送电子邮件。但是用户收到一封空白电子邮件。下面给出代码
const nodemailer = require('nodemailer');
const path = require('path');
const fs = require('fs');
const handlebars = require('handlebars');
// Constants
const Message = require("../Constants/Message.js");
//在这里创建传输
//我正在使用我自己的 gmail 帐户向用户发送他更改密码所需的令牌
function createTransport() {
return nodemailer.createTransport({
host: 'smtp.gmail.com',
secureConnection: true,
port: 465,
auth: {
user: '******@gmail.com',
pass: '*****',
}
});
}
// checking if the transport is created or not
//如果传输还没有准备好,那么一定要给出一个错误 异步函数 verifyTransport(transport) {
let res;
await transport.verify(function(error, success) {
if (error) {
console.log(error);
res = error;
} else {
res = success;
console.log('Server is ready to take our messages');
}
});
return res;
}
//以html的形式发送邮件 //我的html文件是正确的 函数 generateHtmlToSend(文件名) { const filePath = path.join(__dirname, '../Mails/'+fileName); const source = fs.readFileSync(filePath, 'utf-8').toString(); const 模板 = handlebars.compile(来源); return模板; }
function setMailOptions(email,subject,fileName)
{
return mailOptions = {
from: 'shehroz.virk147@gmail.com',
to: email,
subject: subject,
html:generateHtmlToSend(fileName),
};
}
async function sendEmail(subject,fileName,email)
{
const transport = createTransport();
const transportVerify = await verifyTransport(transport);
const mailOptions = setMailOptions(email,subject,fileName);
await transport.sendMail(mailOptions, function (error, info) {
if (error) {
console.log(error);
} else {
console.log('Email sent: ' + info.response);
}
});
}
function sendForgotPasswordEmail(email){
sendEmail(
Message.RESET_PASSWORD,
"forgot-password.html",
email);
}
module.exports = {sendForgotPasswordEmail}
我哪里做错了?主要问题是什么??
问题出在你的generateHtmlToSend
,使用return template("UseLinkHere");