我正在尝试开发这个具有登录页面的应用程序,我可以收集电子邮件地址,以管理员身份登录并向所有订阅用户发送邮件,我正在使用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
我该如何解决这个问题?
答案 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字段类似,但不会为所有人显示其他电子邮件。