1

语境:

我需要在 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 文件中指定并且是正确的,因为我能够发送帐户激活电子邮件。

问题:

该应用程序运行良好,不会在任何地方崩溃,但没有发送电子邮件。我猜标题配置没有被传递?我该如何纠正这个?

更新:

我在发送网格仪表板中检查了电子邮件活动。以下是其中一封已删除电子邮件的快照: 在此处输入图像描述

4

1 回答 1

4

您正在抓取一组 ActiveRecord 对象

@subscribers = Subscriber.where(activated: true)

并将其传递到 smtpapi 标头中。您需要提取那些 ActiveRecord 对象的电子邮件地址。

根据你所说的email领域,这可以用

headers['X-SMTPAPI'] = { :to => subscribers.map(&:email) }.to_json
于 2014-11-24T02:19:09.043 回答