【发布时间】:2019-03-06 07:14:37
【问题描述】:
我正在尝试使用 Nodemailer 和 Gmail 为我的网站实现联系表单,但不幸的是出了点问题。我找不到问题。以下是我的发帖路线:
app.post('/form', cors(), (req, res, next) => {
let transporter = nodemailer.createTransport({
host: 'smtp.gmail.com',
port: 465,
secure: true,
auth: {
user: 'some.mail@gmail.com',
pass: 'password'
},
tls: {
rejectUnauthorized: false
}
});
const htmlEmail = `
<h3>Contact Details</h3>
<ul>
<li>Name: ${req.body.author}</li>
</ul>
<h3>Message:</h3>
<p>${req.body.body}</p>
`
let mailOptions = {
from: req.body.author,
to: 'some@mail.com',
replyTo: req.body.author,
subject: "Portfolio Website - Contact",
text: req.body.body,
html: htmlEmail
};
transporter.sendMail(mailOptions, (error, info) => {
if (error) {
console.log(error);
return res.json({err: error});
}
console.log('Message sent: %s', info.messageId);
res.redirect('form');
});
});
这是我的 HTML 表单:
<form method="POST" action="form" accept-charset=utf-8>
<div class="form-group">
<textarea name="body" placeholder="Write an e-mail here..." class="form-control"></textarea>
</div>
<div class="form-group">
<input type="text" name="author" placeholder="Author" class="form-control author" />
</div>
<div class="form-group">
<input class="btn btn-lg btn-secondary btn-block" type="submit" value="Send" />
</div>
</form>
如有任何帮助,我将不胜感激!
干杯, 西门
PS。这是 GitHub 上的 repo 的链接: https://github.com/alojzz/alojzz.github.io/blob/master/server.js
【问题讨论】:
-
试试这个。在使用 Nodemailer 时。您将收到一封电子邮件,说明您正在使用的 gmail 帐户上的安全性较低的应用程序。在此邮件中为此/不太安全的应用启用访问权限
标签: javascript html node.js gmail nodemailer