【问题标题】:How To Send E-Mails With BCC in Rails 3如何在 Rails 3 中使用密件抄送发送电子邮件
【发布时间】:2011-09-28 09:53:39
【问题描述】:

如何发送带有密件抄送标头的电子邮件?我按照 ruby​​ on rails 指南设置了:bcc => "email@email.com",但它不起作用。

谢谢

由腐蚀编辑 这是我尝试过的代码:

def booking_confirmed_email(booking)
  @booking = booking
  mail(:to => booking.contact_email,
       :bcc => "my@email.com",
       :subject => "Congratulations, #{booking.contact_name}!")
end

也试过了:

def booking_confirmed_email(booking)
  @booking = booking
  mail(:to => booking.contact_email,
       :bcc => ["my@email.com"],
       :subject => "Congratulations, #{booking.contact_name}!")
end

无济于事

【问题讨论】:

  • 我也有同样的问题,密件抄送不起作用
  • 您是说它“不起作用”是因为它没有出现在开发环境的登录中,还是您在生产模式下没有收到任何电子邮件(实际交付)?我已经看到在没有交付的开发模式下,BCC 不会打印在日志中。
  • 这仍然不起作用。我在 Rails 3.1.4 和 actionmailer 3.1.4 上。有人找到解决方案了吗?
  • 您在使用 Amazon SES 吗?可能是他们的问题:github.com/drewblas/aws-ses/issues/16
  • @AdityaSanghi - 你提出了一个很好的观点。我认为我的:bcc 声明不起作用,因为我在开发日志中没有看到适当的条目。它运行正常,只是没有显示在日志中。

标签: ruby-on-rails-3 actionmailer


【解决方案1】:

在您的 user_mailer 上,在您的邮件定义上,添加以下内容:

mail(:subject => "enter your subject", :bcc => "email@email.com")

您还可以让您的密件抄送接收电子邮件列表

@bcc = User.all.pluck(:email)

然后调用

mail(:subject => "enter your subject", :bcc => @bcc)

希望这会有所帮助。 :)

【讨论】:

  • @bcc = User.all.email 不起作用。你的意思是@bcc = User.all.map(&:email)?
  • User.all.pluck(:email) 效率更高
【解决方案2】:

查看 http://railscasts.com/episodes/206-action-mailer-in-rails-3 并在相当于 user_mailer.rb 的文件中添加 'default :bcc => "your_required_bcc_email"

【讨论】:

  • 这意味着您的所有电子邮件都会有密件抄送。如果您只需要将密件抄送添加到一种方法怎么办?
  • 我刚刚测试了这个,它仍然没有工作。我正在使用 actionmailer 3.0.7 顺便说一句
  • 但是您可以通过 :to => 发送电子邮件,不是吗?
  • 是的,我对 to 没有任何问题,但我需要密件抄送特定操作
【解决方案3】:

这里有完整的细节:

http://api.rubyonrails.org/classes/ActionMailer/Base.html

简答:

mail(:to => "some@example.com" ,  :subject => "Example Subject",
     :bcc => ["bcc@example.com", "Order Watcher <watcher@example.com>"] ,
     :cc => "other@example.com" )

请注意如何将一组电子邮件地址传递给每个 :to、:cc、:bcc 选项。

RailsCast:

http://railscasts.com/episodes/206-action-mailer-in-rails-3

【讨论】:

  • 已经在 :bcc 字段中尝试过数组或字符串,但它不起作用。这就是我添加赏金的原因
  • 这很奇怪!它绝对适合我..你能发布你试过的代码吗?
  • 添加了代码。它和你的一样,它会发送电子邮件(HTML 和 TEXT 版本)。但没有密件抄送。
  • 不,我在我的其他操作中使用其中一个收件人字段中的电子邮件地址。它确实发送它,但不是密件抄送。这真的很令人沮丧,因为没有错误消息,它会发送到 to 字段
  • 在日志中看不到密件抄送是正常的。但是,消息应该到达目的地。
【解决方案4】:

我也遇到了同样的问题。事实证明,在我的情况下我正在密送我要发送的相同地址。 ActionMailer 或邮件服务器正在做一些聪明的事情,并选择只发送一份电子邮件。

我改为使用两个不同的电子邮件地址,密件抄送效果很好。

【讨论】:

    【解决方案5】:

    如果您正在使用任何队列适配器(例如 Sidekiq),请尝试重新启动它。

    【讨论】:

      猜你喜欢
      • 2013-06-08
      • 2012-03-20
      • 1970-01-01
      • 1970-01-01
      • 2020-10-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多