2016-07-29 24 views
0

私は電子メールアドレスを収集し、管理者としてログインし、購読しているすべての人にメールを送信できるリンク先ページを持つこのアプリケーションを開発しようとしていますユーザー、私はアクションメーラーと自分のGmailアカウントのSMTP設定を使用しています。受信者なしで複数の受信者にメールを送信他のユーザーに送信する

私はメールを送信すると、誰もがcc'edを取得し、自分のGoogleメールアカウントでテストしているのを見て、他の人がcc'edを見ることができます。

Mailforsubcriberコントローラ

def create 
@mailforsubscriber = Mailforsubscriber.new(mailforsubscriber_params) 
respond_to do |format| 
    if @mailforsubscriber.save 
       RecipientMailer.newsletter(@mailforsubscriber).deliver_now 

      format.html { redirect_to @mailforsubscriber, notice: 'Mail for subscriber was successfully sent.' } 
      format.json { render :show, status: :created, location: @mailforsubscriber } 

    else 
    format.html { render :new } 
    format.json { render json: @mailforsubscriber.errors, status: :unprocessable_entity } 
    end 
end 

エンド

これは私がこの問題を回避んどのように受信者のメーラーコード

class RecipientMailer < ApplicationMailer 
    require 'digest/sha2' 
    default from: "noti[email protected]" 
    default to: Proc.new {Subscribeduser.pluck(:email) } 
    default "Message-ID" => "#{Digest::SHA2.hexdigest(Time.now.to_i.to_s)}@domain.com" 


    def newsletter(mailforsubscriber) 
     @mailforsubscriber = mailforsubscriber 
     mail(subject: "Newsletter") 
    end 

end 

?です。

答えて

1

あなたはここで私は、メソッドsend_mail_personsと呼ばれ、parameter.Thisロジックはすべての電子メールのIDを越えあなたのループを作るよう受信者情報を合格した

def newsletter(mailforsubscriber) 
    @mailforsubscriber = mailforsubscriber 
    mail(:to => @mailforsubscriber.email, :subject => "Newsletter") 
end 

、あなたの行動のメーラーでは、このようなものを使用することができますし、個別に送信します。あなたが一度にすべてのユーザーにメールを送信したい場合、あなたは使用することができますBCCをあなたがレールに新しいしている場合は、

mail(:to => "@mailforsubscriber.email" , :subject => "Example Subject", 
:bcc => ["[email protected]", "[email protected]"]) 

と言うことは、私はこのAction Mailer Basicsを読むことをお勧めします。これは、コントローラからビューへの基本的なメーラーテンプレート統合のエンドツーエンドフローをカバーします。

+0

私は多くの人に電子メールアドレスを手動で入力することなく、それを送信しようとしています。 "mailforsubscriber.email"ビットは、購読者のメールに電子メールアドレスがあることを意味します。そうではありません。モデルの購読者と購読者の間に本質的に関係はありません。複雑になる可能性があります。 –

+0

"私は多くの人にそれを送信しようとしています" - あなたの提案されたソリューションのbccビットが私のアプリケーションには適していないことを意味します。私が前のコメントで十分に明確でなかった場合 –

+0

変数に格納された電子メールIDの配列をアクションメーラーに渡すことができます。 1回の呼び出しで複数のユーザーに送信したいので、to => [ids]を使用します。これにより、すべてのメールIDが他のメールIDにも公開されます。 – Bijendra

1

CCOフィールドを使用してみてください.CCフィールドのように機能しますが、他のEメールはすべての人には表示されません。

関連する問題