我将不得不发送一堆电子邮件,并且想知道将同一封电子邮件分别发送到一堆电子邮件的更省力的方法。
我必须假设
email_addresses = ApplicableUser.all.pluck(:email)
email_addresses.each do |address|
UserMailer.send_email(address).deliver_later
end
def send_email(address)
subject = "asdf"
mail(to: email, subject: subject)
end
比
更慢且更费力email_addresses = ApplicableUser.all.pluck(:email)
UserMailer.send_email(email_addresses).deliver_later
def send_email(addresses)
subject = "asdf"
mail(bcc: addresses, subject: subject)
end
但在全部切换之前想确认一下
它比较慢,因为你在迭代
email_addresses
时对邮件服务发出了N个请求。您还可以在每次迭代中启动邮件程序对象。也是要付出一些代价的
当使用 BCC 时 — 这是对邮件服务的单个请求,邮件程序对象的单个初始化
但是,如果您使用某些付费(或有限)邮件服务,可能会将这两种情况都计入总电子邮件地址