上下文:
我需要使用rails应用中的发送网格发送批量电子邮件。 我将向大约300名订阅者发送电子邮件。 我已经读过它可以使用
完成headers["X-SMTPAPI"] = { :to => array_of_recipients }.to_json
我试过了。
以下是我的ActionMailer:
class NewJobMailer < ActionMailer::Base
default from: "from@example.com"
def new_job_post(subscribers)
@greeting = "Hi"
headers['X-SMTPAPI'] = { :to => subscribers.to_a }.to_json
mail(
:to => "this.will@be.ignored.com",
:subject => "New Job Posted!"
)
end
end
我从控制器中调用此邮件程序方法
..
@subscribers = Subscriber.where(activated: true)
NewJobMailer.new_job_post(@subscribers).deliver
..
send-grid的配置在config / production.rb文件中指定并且是正确的,因为我能够发送帐户激活电子邮件。
问题:
该应用程序工作正常,不会在任何地方崩溃,但电子邮件不会被发送出去。 我猜猜标题配置没有被传递? 我怎么能纠正这个?
更新:
我在发送网格信息中心检查了电子邮件活动。 以下是其中一封已删除电子邮件的快照:
答案 0 :(得分:4)
您正在使用
抓取一组ActiveRecord对象@subscribers = Subscriber.where(activated: true)
并将其传递给smtpapi标头。您需要提取这些ActiveRecord对象的电子邮件地址。
根据您所谓的email
字段,可以使用
headers['X-SMTPAPI'] = { :to => subscribers.map(&:email) }.to_json