teratail header banner
teratail header banner
質問するログイン新規登録
Netlify

Netlifyは、静的サイトを超高速でホスティングできる高機能なWebサービスです。WordPressといった動的処理を必要としないLPなどの静的Webサイトを公開することが可能。カスタムドメイン設定や無料SSL証明書などの多くの機能を無料で使用できます。

Next.js

Next.jsは、Reactを用いたサーバサイドレンダリングなどを行う軽量なフレームワークです。Zeit社が開発しており、nextコマンドでプロジェクトを作成することにより、開発環境整備が整った環境が即時に作成できます。

Gmail

GmailとはGoogleによって提供されているウェブメールのサービスのことです。

Q&A

0回答

950閲覧

お問い合わせフォーム gmail 本番環境だとエラーになる「Status Code: 500 」について教えてください

junya.k

総合スコア0

Netlify

Netlifyは、静的サイトを超高速でホスティングできる高機能なWebサービスです。WordPressといった動的処理を必要としないLPなどの静的Webサイトを公開することが可能。カスタムドメイン設定や無料SSL証明書などの多くの機能を無料で使用できます。

Next.js

Next.jsは、Reactを用いたサーバサイドレンダリングなどを行う軽量なフレームワークです。Zeit社が開発しており、nextコマンドでプロジェクトを作成することにより、開発環境整備が整った環境が即時に作成できます。

Gmail

GmailとはGoogleによって提供されているウェブメールのサービスのことです。

0グッド

0クリップ

投稿2022/03/20 04:56

0

0

分からないこと

Next.jsでお問い合わせフォームを作成しました。
ローカルで送信するとエラーなく送信されるが、本番環境NetlifyにデプロイするとStatus Code:500でエラーになります。

やったこと

Next.js

Next.jsではnodemailerを使用
api/contact.tsに

import { createTransport } from 'nodemailer' import { NextApiRequest, NextApiResponse } from 'next' export default function sendmail(req: NextApiRequest, res: NextApiResponse) { const htmlMsg = req.body.message.replaceAll('\n', '<br>') const transporter = createTransport({ port: 465, host: 'smtp.gmail.com', auth: { user: process.env.MAIL_USER, pass: process.env.MAIL_PASS, }, secure: true, }) const toHostMailData = { from: process.env.MAIL_USER, to: process.env.MAIL_USER, subject: `【お問い合わせ】${req.body.name}様より`, text: req.body.message + ' | Sent from: ' + req.body.email, html: ` <p>お問い合わせがありました</p> <p>【名前】</p> <p>${req.body.name}</p> <p>【メッセージ】</p> <p>${htmlMsg}</p> <p>【メールアドレス】</p> <p>${req.body.email}</p> `, } // 送信する transporter.sendMail(toHostMailData, function (err) { if (err) console.log(err) }) res.send('success') }

フロントで配置した送信を押すと
pages/contact/index.jsxで

const handleSubmit = (e) => { // console.log('送信中') const data = { name, email, message, } fetch('/api/contact', { method: 'POST', headers: { Accept: 'application/json, text/plain, */*', 'Content-Type': 'application/json', }, body: JSON.stringify(data), }) .then((res) => { if (res.status === 200) { // console.log('送信が成功しました') setSubmitted(true) setName('') setEmail('') setMessage('') } }) .catch((err) => { console.log(err) }) }

Gmailアカウント

  • 2段階認証on
  • アプリパスワード設定

Netlify

Build & deploy / Environment / Environment variables に
MAIL_USER・・・gmailメールアドレス
MAIL_PASS・・・アプリパスワード
を設定

解決したいこと

なぜローカル環境だとお問い合わせ送信が可能だが、Netlifyにデプロイし本番環境だとエラーがでるのか分かりません。
その理由と解決方法を教えていただきたいです。
どうかよろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.30%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問