質問をすることでしか得られない、回答やアドバイスがある。

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

新規登録して質問してみよう
ただいま回答率
85.48%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails 6

Ruby on Rails 6は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

解決済

1回答

993閲覧

[Ruby on Rails6.0]アカウント有効化メールのメール文の作成について

gussan-me

総合スコア7

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails 6

Ruby on Rails 6は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

0グッド

0クリップ

投稿2021/02/28 04:27

Railsで掲示板サイトを作成中の者です。

現在、メールでのアカウント有効化機能を作成なのですが、
コンソール常に、メール文がうまく表示されずに困っております。
解決策など、ご教示頂けますと幸いです。

#コンソール上に表示されるメール文

Date: Sun, 28 Feb 2021 03:59:05 +0000 From: noreply@example.com To: yamada-aa@example.com Message-ID: <603b1509adeb3_631c20696ac1051c@ip-172-31-16-95.ap-northeast-1.compute.internal.mail> Subject: Account activation Mime-Version: 1.0 Content-Type: multipart/alternative; boundary="--==_mimepart_603b1509ac268_631c20696ac104c7"; charset=UTF-8 Content-Transfer-Encoding: 7bit ----==_mimepart_603b1509ac268_631c20696ac104c7 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: base64 #下記の10行の部分に本来であればメール文が表示されるはずですが、文字の羅列が表示されてしまいます。 5bGx55Sw5aSq6YOOIOOBleOCk+OAgeOBk+OCk+OBq+OBoeOBr++8gQ0KDQrj g6bjg7zjgrbjg7zku67nmbvpjLLjgYzlrozkuobjgZfjgb7jgZfjgZ/jgIIN CuODpuODvOOCtuODvOeZu+mMsuOBrueUs+iri+OAgeiqoOOBq+OBguOCiuOB jOOBqOOBhuOBlOOBluOBhOOBvuOBmeOAgg0KDQrkuIvoqJjjga5VUkzjgpLj gq/jg6rjg4Pjgq/jgZnjgovjgZPjgajjgafjgIHmnKzkvJrlk6HnmbvpjLLj gYzlrozkuobjgZfjgb7jgZnvvIE6DQoNCmh0dHBzOi8vMzNjZTU4OTZhYWI0 NDM1ZDhkNjA2ZWVhOWU0MWE3ZGIudmZzLmNsb3VkOS5hcC1ub3J0aGVhc3Qt MS5hbWF6b25hd3MuY29tL2FjY291bnRfYWN0aXZhdGlvbnMvWl9HVE1iZktk STUyOElPWGt1WFBlZy9lZGl0P2VtYWlsPXlhbWFkYS1hYSU0MGV4YW1wbGUu Y29tDQo= ----==_mimepart_603b1509ac268_631c20696ac104c7 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: base64 #下記にもメール本文が表示されるはずですが、文字の羅列が表示されてしまいます。 PCFET0NUWVBFIGh0bWw+DQo8aHRtbD4NCiAgPGhlYWQ+DQogICAgPG1ldGEg aHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7 IGNoYXJzZXQ9dXRmLTgiIC8+DQogICAgPHN0eWxlPg0KICAgICAgLyogRW1h aWwgc3R5bGVzIG5lZWQgdG8gYmUgaW5saW5lICovDQogICAgPC9zdHlsZT4N CiAgPC9oZWFkPg0KDQogIDxib2R5Pg0KICAgIDxoMT7jg6Hjgr/jg6njg7zm jrLnpLrmnb88L2gxPg0KDQo8cD7lsbHnlLDlpKrpg44g44GV44KT44CB44GT 44KT44Gr44Gh44Gv77yBPC9wPg0KDQo8cD4NCiAg44Om44O844K244O85Luu 55m76Yyy44GM5a6M5LqG44GX44G+44GX44Gf44CCDQogIOODpuODvOOCtuOD vOeZu+mMsuOBrueUs+iri+OAgeiqoOOBq+OBguOCiuOBjOOBqOOBhuOBlOOB luOBhOOBvuOBmeOAgg0KICANCiAg5LiL6KiY44GuVVJM44KS44Kv44Oq44OD 44Kv44GZ44KL44GT44Go44Gn44CB5pys5Lya5ZOh55m76Yyy44GM5a6M5LqG 44GX44G+44GZ77yBDQo8L3A+DQoNCjxhIGhyZWY9Imh0dHBzOi8vMzNjZTU4 OTZhYWI0NDM1ZDhkNjA2ZWVhOWU0MWE3ZGIudmZzLmNsb3VkOS5hcC1ub3J0 aGVhc3QtMS5hbWF6b25hd3MuY29tL2FjY291bnRfYWN0aXZhdGlvbnMvWl9H VE1iZktkSTUyOElPWGt1WFBlZy9lZGl0P2VtYWlsPXlhbWFkYS1hYSU0MGV4 YW1wbGUuY29tIj7mnKzkvJrlk6HnmbvpjLLjgpLlrozkuobjgZnjgos8L2E+ DQogIDwvYm9keT4NCjwvaHRtbD4NCg== ----==_mimepart_603b1509ac268_631c20696ac104c7-- Redirected to https://33ce5896aab4435d8d606eea9e41a7db.vfs.cloud9.ap-northeast-1.amazonaws.com/ Completed 302 Found in 841ms (ActiveRecord: 22.7ms | Allocations: 32008)

#関係があると考えているコード

#user_mailer/account_activation.text.erb <%= @user.name %> さん、こんにちは! ユーザー仮登録が完了しました。 ユーザー登録の申請、誠にありがとうございます。 下記のURLをクリックすることで、本会員登録が完了します!: <%= edit_account_activation_url(@user.activation_token, email: @user.email) %>
#user_mailer/account_activation.html.erb <h1>掲示板</h1> <p><%= @user.name %> さん、こんにちは!</p> <p> ユーザー仮登録が完了しました。 ユーザー登録の申請、誠にありがとうございます。 下記のURLをクリックすることで、本会員登録が完了します! </p> <%= link_to "本会員登録を完了する", edit_account_activation_url(@user.activation_token, email: @user.email) %>
#mailers/previews/user_mailer_preview.rb class UserMailerPreview < ActionMailer::Preview def account_activation user = User.first user.activation_token = User.new_token UserMailer.account_activation(user) end def password_reset UserMailer.password_reset end end
#users_controller.rb class UsersController < ApplicationController before_action :logged_in_user, only: [:index, :edit, :update, :destroy] before_action :correct_user, only: [:edit, :update] before_action :admin_user, only: :destroy def index @users = User.paginate(page: params[:page]) end def new @user = User.new end def show @user = User.find(params[:id]) end def create @user = User.new(user_params) if @user.save UserMailer.account_activation(@user).deliver_now flash[:info] = "仮登録の受付が完了しました!ご登録いただいたメールアドレスに本登録の案内メールを送りました。※メールに記載しているURLをクリックして、本登録をお願いします。" redirect_to root_url else render 'new' flash[:danger] = "アカウントの作成に失敗しました。" end end def edit @user = User.find(params[:id]) end def update @user = User.find(params[:id]) if @user.update(user_params) flash[:success] = "プロフィールが更新されました!" redirect_to user_url(@user) else render 'edit' end end def destroy User.find(params[:id]).destroy flash[:success] = "ユーザーを削除しました。" redirect_to users_url end private def user_params params.require(:user).permit(:name, :email, :password, :password_confirmation) end #beforeアクション #ログイン済みユーザーかどうか確認 def logged_in_user unless logged_in? store_location flash[:danger] = "ログインしてください。" redirect_to login_url end end #正しいユーザーかどうか def correct_user @user = User.find(params[:id]) redirect_to root_url unless current_user?(@user) end # 管理者かどうか確認 def admin_user redirect_to root_url unless current_user.admin? end end
#user_mailer.rb class UserMailer < ApplicationMailer # Subject can be set in your I18n file at config/locales/en.yml # with the following lookup: # # en.user_mailer.account_activation.subject # def account_activation(user) @user = user mail to: user.email, subject: "Account activation" end # Subject can be set in your I18n file at config/locales/en.yml # with the following lookup: # # en.user_mailer.password_reset.subject # def password_reset @greeting = "Hi" mail to: "to@example.org" end end

#試したこと
account_activation.text.erbaccount_activation.html.erbに原因があると考えて、
試しにacount_activation.erbにrailsチュートリアルに書いてあるコードをコピペしてみました。
下記の通りに変更しました。

#account_activation.text.erb Hi <%= @user.name %>, Welcome to the Sample App! Click on the link below to activate your account: <%= edit_account_activation_url(@user.activation_token, email: @user.email) %>

これによってコンソール上のメール文は下記のように変化しました。
最初、文字の羅列だった10行は、だいたい人間が読める文に変わりましたが、
account_activation.text.erbで、Hi <%= @user.name %>と書いている部分が、
Hi =E5=B1=B1=E7=94=B0=E5=A4=AA=E9=83=8Eという文字列に変化されてしまっております。

UserMailer#account_activation: processed outbound mail in 12.9ms Delivered mail 603b155169f6a_631c20696ac10788@ip-172-31-16-95.ap-northeast-1.compute.internal.mail (58.8ms) Date: Sun, 28 Feb 2021 04:00:17 +0000 From: noreply@example.com To: huhuhu1212121@example.com Message-ID: <603b155169f6a_631c20696ac10788@ip-172-31-16-95.ap-northeast-1.compute.internal.mail> Subject: Account activation Mime-Version: 1.0 Content-Type: multipart/alternative; boundary="--==_mimepart_603b155166d8c_631c20696ac1069"; charset=UTF-8 Content-Transfer-Encoding: 7bit ----==_mimepart_603b155166d8c_631c20696ac1069 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable #文字の羅列だった10行がこのように変化しました。 Hi =E5=B1=B1=E7=94=B0=E5=A4=AA=E9=83=8E,=0D =0D Welcome to the Sample App! Click on the link below to activate your accou= nt:=0D =0D https://33ce5896aab4435d8d606eea9e41a7db.vfs.cloud9.ap-northeast-1.amazon= aws.com/account_activations/GJnckE2pLp_3U453Xe0a5A/edit?email=3Dhuhuhu121= 2121%40example.com=0D ----==_mimepart_603b155166d8c_631c20696ac1069 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: base64 PCFET0NUWVBFIGh0bWw+DQo8aHRtbD4NCiAgPGhlYWQ+DQogICAgPG1ldGEg aHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7 IGNoYXJzZXQ9dXRmLTgiIC8+DQogICAgPHN0eWxlPg0KICAgICAgLyogRW1h aWwgc3R5bGVzIG5lZWQgdG8gYmUgaW5saW5lICovDQogICAgPC9zdHlsZT4N CiAgPC9oZWFkPg0KDQogIDxib2R5Pg0KICAgIDxoMT7jg6Hjgr/jg6njg7zm jrLnpLrmnb88L2gxPg0KDQo8cD7lsbHnlLDlpKrpg44g44GV44KT44CB44GT 44KT44Gr44Gh44Gv77yBPC9wPg0KDQo8cD4NCiAg44Om44O844K244O85Luu 55m76Yyy44GM5a6M5LqG44GX44G+44GX44Gf44CCDQogIOODpuODvOOCtuOD vOeZu+mMsuOBrueUs+iri+OAgeiqoOOBq+OBguOCiuOBjOOBqOOBhuOBlOOB luOBhOOBvuOBmeOAgg0KICANCiAg5LiL6KiY44GuVVJM44KS44Kv44Oq44OD 44Kv44GZ44KL44GT44Go44Gn44CB5pys5Lya5ZOh55m76Yyy44GM5a6M5LqG 44GX44G+44GZ77yBDQo8L3A+DQoNCjxhIGhyZWY9Imh0dHBzOi8vMzNjZTU4 OTZhYWI0NDM1ZDhkNjA2ZWVhOWU0MWE3ZGIudmZzLmNsb3VkOS5hcC1ub3J0 aGVhc3QtMS5hbWF6b25hd3MuY29tL2FjY291bnRfYWN0aXZhdGlvbnMvR0pu Y2tFMnBMcF8zVTQ1M1hlMGE1QS9lZGl0P2VtYWlsPWh1aHVodTEyMTIxMjEl NDBleGFtcGxlLmNvbSI+5pys5Lya5ZOh55m76Yyy44KS5a6M5LqG44GZ44KL PC9hPg0KICA8L2JvZHk+DQo8L2h0bWw+DQo= ----==_mimepart_603b155166d8c_631c20696ac1069-- Redirected to https://33ce5896aab4435d8d606eea9e41a7db.vfs.cloud9.ap-northeast-1.amazonaws.com/ Completed 302 Found in 740ms (ActiveRecord: 22.8ms | Allocations: 18642)

以上でございます。
恐れ入りますが、ご確認の程よろしくお願い致します。

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

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

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

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

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

gouf

2021/02/28 05:01

問題点としている部分は何ですか? 受信メールの表示は正常に行われていますか?
guest

回答1

0

ベストアンサー

これはメールとしては正常です。歴史的経緯により日本語を含むメールはこういう形にencodeされます。
メール本文を確認したい場合は、以下のいずれかで。

  1. コピペしてbase64をdecodeする
  2. メールを受信して読む
  3. gem 'letter_opener'、'letter_opener_web' を入れる

投稿2021/03/01 23:17

winterboum

総合スコア23347

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

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

gussan-me

2021/03/04 11:26

ありがとうございます。 メールを受信してみたところ、日本語で表示されました。 お忙しいところご回答いただき、ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問