发送邮件给多个收件人没有收件人看到我发送给其他人

时间:2016-07-29 18:55:33

标签: ruby-on-rails ruby email

我正在尝试开发这个具有登录页面的应用程序,我可以收集电子邮件地址,以管理员身份登录并向所有订阅用户发送邮件,我正在使用Action邮件程序和我的gmail帐户smtp配置。

当我发送邮件时,每个人都被抄送,看到我正在使用我自己的谷歌邮件帐户进行测试,我可以看到其他人被抄送。

Mailforsubcriber Controller

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: "notification@example.com"
  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

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:1)

您可以在动作邮件中使用此类内容,

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

在这里,我调用了send_mail_persons方法,并将收件人信息作为参数传递。此逻辑将使您遍历所有电子邮件ID,然后单独发送。如果您想立即向所有用户发送邮件,那么您可以使用:bcc ,比如说

mail(:to => "@mailforsubscriber.email" ,  :subject => "Example Subject",
 :bcc => ["bcc1@abc.com", "bcc2@abc.com"])

如果您是Rails的新手,我建议您阅读Action Mailer Basics。这包括从控制器到视图的基本邮件程序模板集成的端到端流程。

答案 1 :(得分:1)

尝试使用CCO字段,它的工作方式与CC字段类似,但不会为所有人显示其他电子邮件。