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

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

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

Ruby on Rails4はRubyによって書かれたオープンソースのウェブフレームワークです。 Ruby on Railsは「設定より規約」の原則に従っており、効率的に作業を行うために再開発を行う必要をなくしてくれます。

Q&A

解決済

1回答

4916閲覧

Railsでメールを複数ユーザに送信

koichi8888

総合スコア24

Ruby on Rails 4

Ruby on Rails4はRubyによって書かれたオープンソースのウェブフレームワークです。 Ruby on Railsは「設定より規約」の原則に従っており、効率的に作業を行うために再開発を行う必要をなくしてくれます。

0グッド

0クリップ

投稿2018/06/18 06:26

編集2018/06/18 08:41

前提・実現したいこと

ActiveMailerで複数のユーザ宛てにToで送りたいです。
対象のユーザをハッシュ形式で変数に格納し、展開する形で送る設定をしているのですが、一人のユーザにしか送られない状態です。

デバックをしたところ、ハッシュの変数に複数ユーザが格納されており、展開も複数宛先分展開されているようです。

mail toに直接宛先を記載し、送付することはできているので、上記の変数展開部分の記載の仕方が間違っていることが原因だと思っているのですが、記載方法が分からないため、教えて頂けますでしょうか。

※調査した限り、<宛先1>,<宛先2>のように『,』で複数宛先を指定する記載する必要があるようです。下記の記載で意図した動作になりましたので、この形式でハッシュを展開する必要がありそうです。
mail to: "<宛先1>,<宛先2>", subject: "SSL有効期限通知メールです。"

発生している問題・エラーメッセージ

※下記はppデバックした際のログになります。 "表示↓@mailto" [#<UserDatum:0x0000559fe5ee0f90 user_id: nil, email: "<宛先1>">, #<UserDatum:0x0000559fe5eddde0 user_id: nil, email: "<宛先2>">] "表示↓mailto" #<UserDatum:0x0000559fe5ee0f90 user_id: nil, email: "<宛先1>"> "表示↓mailto" #<UserDatum:0x0000559fe5eddde0 user_id: nil, email: "<宛先2>">

該当のソースコード

<アプリ名>/app/mailer/sample_mailer.rb

Ruby

1def send_when_limit 2 3 @mailto = UserDatum.select("email").where(authority: "Admin") 4   5 pp "表示↓@mailto" 6 pp @mailto 7 8 @mailto.each do |mailto| 9 10  pp "表示↓mailto" 11 pp mailto 12 13 mail to: mailto.email, subject: "通知メールです。" 14 end 15 end

補足情報(FW/ツールのバージョンなど)

・Rails
Rails 4.2.10

・Mysql
mysql Ver 14.14 Distrib 5.7.22, for Linux (x86_64) using EditLine wrapper

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

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

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

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

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

otn

2018/06/18 07:03

「上記の変数展開部分」とは何処のことを言ってますか?
koichi8888

2018/06/18 07:10 編集

ソースコードの下記の部分になります。 mail to: mailto.email, subject: "SSL有効期限通知メールです。"
otn

2018/06/18 07:16

メールが2通でなく1通しか送信されないと言う事ですか?
koichi8888

2018/06/18 07:17 編集

はい、その通りになります。宛先2の方にしか送信されず、ログにも宛先2への処理しか記載がありませんでした。
otn

2018/06/18 07:24 編集

このコメント誤り
koichi8888

2018/06/18 07:26

ご回答ありがとうございます。宛先が間違っている場合は宛先が間違っている場合のエラーメールが送信元アドレスで確認できることは確認済みのため、原因としてはおそらく違うと思っています。
guest

回答1

0

ベストアンサー

宛先をつなげて1つの文字列にするなら、

Ruby

1mail to: @mailto.map(&:email).join(","), subject: "通知メールです。"

投稿2018/06/18 11:51

otn

総合スコア84423

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

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

koichi8888

2018/06/19 01:47

ご回答ありがとうございます。想定通りの動作が実装でき、大変助かりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問