[英]Nodemailer Not Working With Heroku Deployment
长话短说,我想在我的应用程序中添加一个电子邮件系统,所以我决定使用Nodemailer。 在localhost上一切正常,但是一旦我尝试从heroku部署的站点发送电子邮件,它就会失败,并显示500
内部错误。
我已经用我的gmail帐户完成了这些工作,以使其能够接受不安全的应用和工作。
这是我的nodemailer设置:
app.post('/sendMail', (req, res) => {
const { name, email, total } = req.body
const nameCheck = name
.split(' ')
.map(word => word.charAt(0).toUpperCase() + word.slice(1))
.join(' ')
const output = `
<p>Thanks for shopping with us, ${nameCheck}.</p>
<p>Your Total is $${total}</p>
<hr />
<p>Gabriel Pozo - React Cart Developer / Owner</p>
<a href="https://reactshoppingcart1.herokuapp.com/">Shop</a>
`
const transporter = nodemailer.createTransport({
service: 'gmail',
port: 25,
secure: false,
auth: {
user: 'beyondutraining@gmail.com',
pass
},
tls: { rejectUnauthorized: false }
})
const mailOptions = {
from: '"Gabriel" <beyondutraining@gmail.com>',
to: email,
subject: 'Your Order',
html: output
}
transporter.sendMail(mailOptions, (error, info) => {
error ? res.sendStatus(500) : res.sendStatus(200)
})
})
这就是我从React提供静态文件的方式:
if (process.env.NODE_ENV === 'production') {
app.use(express.static('client/build'))
app.get('*', (req, res) => {
res.sendFile(path.resolve(__dirname, 'client', 'build', 'index.html'))
})
}
这就是我如何分配env
变量:
module.exports = {
PASS: process.env.PASS
}
如果您还有其他代码,请告诉我!
您没有提到是否在Heroku项目中设置了环境变量。 应该可以通过链接https://dashboard.heroku.com/apps/<your-project-id>/settings
进行访问。 Config Vars
( Config Vars
部分有一个Reveal Config Vars
按钮-按下时,您可以添加按键PASS
并为其指定适当的值。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.