1

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);
});
4

1 に答える 1