web-dev-qa-db-ja.com

Firebase関数とnodemailerを使用して、お問い合わせフォームからメールを送信する

私はこれらのテクノロジーを使用しています:

  • Angular 4
  • Firebase
  • firebaseホスティング
  • firebase関数
  • firebaseリアルタイムデータベース
  • firebaseストレージ

Firebaseホスティングでウェブサイトをホストしています。下の写真のようなお問い合わせフォームがあります。ユーザーがそのフォームを送信するたびに、ウェブサイトの管理者にメールを送信してほしいです。

Firebaseと Nodemailer を使用してメールを送信する方法

関数フォルダーのindex.js内にnodemailerを要求する必要がありますか、それとも間違っていますか?

これは私のお問い合わせフォームです。

enter image description here

6
George C.

何かがどのように行われるかわからないときは、いつでも尋ねることをお勧めします。ここでは、これを実現する方法についていくつかの簡単な手順を説明します。

まず、プロジェクト内でFirebase関数を初期化してください。あなたがそれをする方法を知らないならば、ただグーグルそれを彼らの会社のウェブサイトで彼らはそれぞれのトピックについて驚くべき説明をします。

それが済んだら、HTTPトリガーを使用して単一のFirebase関数を設定します。プロジェクトのFirebase関数フォルダー内でnpm install [email protected] --saveを実行していることを確認してください。関数自体をデプロイしようとすると、後ですべてがクラッシュするため、実際にバージョン2.4.1をインストールすることが重要なポイントです。 (私はまだ理由を理解していません)

編集:

新しいバージョンのNodemailerでFirebase関数がクラッシュする理由を見つけました。それはNode私が実行していたバージョンでした。ノードを更新した後、すべてが正常でした。問題はここにも記載されています: 公式GitHubページへのリンク

したがって、どちらのバージョンを使用するかはあなた次第です。最新のNodemailerを実行している場合は、新しいノードも必要であることを確認してください。 ;)

それが終わったら、Firebase関数のコードを開き、Nodemailerの公式ウェブサイトにアクセスして、単一のメッセージがどのように作成されて送信されるかを確認します。そこには驚くべき例があります。これは実際にはほとんどがコードにコピーアンドペーストされ、いくつかの追加構成(ユーザー名とパスワードなど)があります。

フロントエンドAngularアプリから、フォームにあるフィールドのデータを使用してPOSTリクエストを行うようにしてください。また、 Firebase関数がリクエストを受信すると、メールメッセージを設定して送信し、最後に適切なステータスコードとメッセージで応答するようにします。

私が書いたものはすべて少し複雑に聞こえるかもしれませんが、あなたのICT能力についてはわかりませんが、注意深く読んでください。あなたが理解していないことをグーグルで調べてください。答えを見つけたら、必ずここに返信してください。そうすれば、私や他の人があなたを助けてくれます。

このプロセス中に自分自身をガイドするために使用できるリンクもここに配置します。

Google自体の例を見るにはここをクリックしてください

幸運を祈ります。

9
Bilger Yahov