Express アプリがあり、ローカルで動作し、テスト メールを送信する連絡フォームを作成しました。
当分の間、バーナーテストメールを使用しているさまざまな環境用にノードメーラーをセットアップしました。
ただし、これをZeitにプッシュしたら。POST リクエストはまったく起動しません。どんな助けでも大歓迎です。
GLOBAL_EMAIL env は、本番環境のアプリに設定されています。
router.post('/contact/send', (req, res) => {
// async..await is not allowed in global scope, must use a wrapper
async function main() {
const output = `
<h3>You have a new contact message!</h3>
<ul>
<li><b>Name:</b> ${ req.body.name }</li>
<li><b>Email:</b> ${ req.body.email }</li>
<li><b>Phone Number:</b> ${ req.body.phone_number }</li>
</ul>
<h3>Message:</h3>
<p>${ req.body.message }</p>
`;
var mailConfig ;
if (process.env.NODE_ENV === 'production' ){
mailConfig = {
host: "smtp.mailtrap.io", // smtp.sendgrid.net
port: 2525, // 587
auth: {
user: "a3ad3f28b0982c", // a48aef40aa09bf
pass: "64f3d499b1d6d2" // 222473c0a9e6e9
}
};
} else {
mailConfig = {
host: "smtp.mailtrap.io",
port: 2525,
auth: {
user: "a3ad3f28b0982c", // a48aef40aa09bf
pass: "64f3d499b1d6d2" // 222473c0a9e6e9
}
};
}
let transporter = nodemailer.createTransport(mailConfig);
// send mail with defined transport object
let info = await transporter.sendMail({
from: `"${req.body.name}" <${req.body.email}>`, // sender address
to: process.env.GLOBAL_EMAIL || 'ben@benbagley.dev', // list of receivers
subject: 'New contact message', // Subject line
html: output // html body
});
console.log('Message sent: %s', info.messageId);
// Message sent: <b658f8ca-6296-ccf4-8306-87d57a0b4321@example.com>
}
main().catch(console.error);
});