发送邮件给多收件人没有收件人看到其他人我发送到
问题描述:
我想开发这个应用程序,有一个着陆页,我可以收集电子邮件地址,以管理员身份登录并发送邮件给所有订阅用户,我使用Action mailer和我的Gmail帐户smtp配置。发送邮件给多收件人没有收件人看到其他人我发送到
当我发送邮件时,每个人都会收到邮件,并且看到我正在使用自己的Google邮件帐户进行测试时,我可以看到其他人收到了邮件。
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: "[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
我如何解决此得到?
答
您可以使用这样的事情在你的行动邮件,
def newsletter(mailforsubscriber)
@mailforsubscriber = mailforsubscriber
mail(:to => @mailforsubscriber.email, :subject => "Newsletter")
end
在这里,我调用的方法send_mail_persons并通过了收件人信息作为parameter.This逻辑会让你在所有的电子邮件ID和循环然后单独发送。如果你想一次将邮件发送到所有用户,那么你可以使用:BCC,说
mail(:to => "@mailforsubscriber.email" , :subject => "Example Subject",
:bcc => ["[email protected]", "[email protected]"])
如果你是新来的Rails,我建议阅读本Action Mailer Basics。这涵盖了从控制器到查看的基本邮件模板集成的端到端流程。
答
尝试使用CCO字段,它像CC字段一样工作,但不会显示其他每个人的电子邮件。
我想将它发送给很多人,而不必手动输入他们的电子邮件地址。 “mailforsubscriber.email”位意味着订阅者的邮件有一个电子邮件地址,但事实并非如此。用户的邮件和模型中的订阅用户之间基本上没有关系,因为这可能变得复杂。 –
“我正试图将其发送给很多人” - 这意味着您提出的解决方案的密件抄送位并不适合我的应用程序。如果我在前面的评论中不够清楚 –
您可以将存储在变量中的电子邮件ID数组传递给动作邮件程序。由于您想在一次通话中发送给多个用户,因此请使用:to => [数组ID]。这将导致所有的邮件ID都暴露给其他人。 – Bijendra