2020年7月31日より「押さえておきたいWeb知識」をリニューアルしました。

[Ruby on Rails] お問い合わせフォームの内容を自分のメールアドレス(Gmail)に送信させる方法!

お問い合わせフォームの内容をGmailで自分のメールアドレスに送信させる方法をまとめてみました。

※今回はRuby on Railsに標準搭載されているaction mailerを使用しています。

1.contactモデルを作成する

まず始めにお問い合わせ内容を保存するためのcontactモデルを作成していきます。

contactモデルは名前を保存するnameカラム(string型)とお問い合わせ内容を保存するmessageカラム(text型)を持つとします。

それではcontactモデルを生成しましょう。

これでcontactモデルが完成しました。

 




 

2.contactsコントローラーを作成する

次にcontactsコントローラーを作成していきます。

色々とファイルが生成されましたが、「contacts_controller.rb」ファイルに必要事項を記述していきます。

記述内容は以下の通りです。

メール送信はコントローラーのアクションから実行するので、「ContactMailer.contact_mail(@contact).deliver」を組み込んでいます。

ここではお問い合わせ内容をデータベースに保存した後、メール送信を行うという流れになっています。

 




 

3.お問い合わせフォームを作成する

次にお問い合わせフォームを作成していきます。

4.メーラークラスを作成する

次にメーラークラスを作成していきます。

以下のようにコマンドを実行すると色々とファイルが作成されます。

色々とファイルが生成されましたが、「contact_mailer.rb」に必要事項を記述していきます。

記述内容は以下の通りです。

上記ではmailメソッドでお問い合わせ内容の宛先(to)、タイトル(subject)を設定しています。

 




 

5.サーバーを設定する

次にメールサーバーを設定していきます。

今回はGmailのメールサーバーを利用してメール送信を行います。

※Gmailアカウントのセキュリティで2段階認証の設定とアプリパスワードの生成を行う必要があります。

user_nameに自分のアカウントユーザー名を、passwordに自分のアカウントパスワードを入力して下さい。

※本番環境では環境変数を使うようにしましょう。

上記ではメール送信する上で必要な設定を行っています。

・config.action_mailer.perform_deliveries = true

⇒メール送信を有効にする

・config.action_mailer.raise_delivery_errors = true

⇒メール送信ができなかった場合、エラーを発生させる

・config.action_mailer.delivery_method = :smtp

⇒メール送信する際に通信プロトコルSMTPを利用する

 




 

6.メールテンプレートを作成する

次にメールテンプレートを作成していきます。

今回、HTML形式のメールテンプレートとテキスト形式のメールテンプレートの2つを作成します。

※送信相手によってはHTML形式のメールを受け取ることができない人もいるのでテキスト形式も作成しておくといいかと思います。

以下はHTML形式のメールテンプレートです。

以下はテキスト形式のメールテンプレートです。

 




 

7.お問い合わせフォームからメールが届くか試してみよう

準備ができましたので、実際にお問い合わせフォームからメールが届くか試してみましょう。

お問い合わせフォームにアクセスしてみると以下のような画面が出てきます。

お問い合わせフォームに内容を入力して、送信してみましょう。

そうすると以下のようにWebアプリケーションからメールが届きました。

これで完了です。

 




 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です