ActionMailer - 限制收件人数量?

时间:2011-11-03 20:54:18

标签: ruby-on-rails capistrano actionmailer

我已经设置Capistrano在部署我的RoR(2.3.8)应用程序后发送电子邮件。我有一个config/cap_mailer.rb文件基本上看起来像:

ActionMailer::Base.smtp_settings = {
  :address => my,
  :port => exchange,
  :domain => server,
  :authentication => settings,
  :user_name => are,
  :password => here
}

class CapMailer < ActionMailer::Base
  def deploy_notification(cap_vars)
    recipients  cap_vars[:notify_emails]
    from        'deploy@my.org'
    subject     "New app!"
    body        "Deployed application...blah blah blah"
  end
end

然后,在我的deploy.rb文件中,我有以下内容:

require 'config/cap_mailer.rb'
...
desc "Email recipients of deployment"
task :notify do
  puts "  * Sending notification email"
  set :notify_emails, ["test1@my.org", "test2@my.org", etc.]
  CapMailer.deliver_deploy_notification(self)
end

现在一切正常,花花公子......直到我在:notify_emails 数组中放了7个以上的电子邮件地址。最多7个工作正常,但当我把8个或更多(所有有效地址),电子邮件搞砸了一点(至少仍然是前7个)。查看电子邮件标题,它显示它正在切断“To:”中的第8个(和第9个,第10个......)地址并将其放入邮件正文中。

  

HEADER:
  thread-index:AcyaZxlga08L9p35QYKJ22aiGG2zeA ==
  Content-Class:urn:content-classes:message
  重要性:正常
  优先级:正常
  X-MimeOLE:由......制作   收到:来自exchange.my.org([ip address])的...; 2011年11月3日星期四14:28:08 -0600
  日期:2011年11月3日星期四14:28:08 -0600
  来自:deploy@my.org
  致:test1@my.org,
      test2@my.org,
      test3@my.org,
      test4@my.org,
      test5@my.org,
      test6@my.org,
      test7@my.org
  标头:
  
  BODY:
  test8@my.org
  消息标识:
  &LT; 4eb2f95816341_135ff800c21ac130@my_box.local.tmail>
  主题:新应用!
  哑剧版:1.0
  内容类型:text / plain;字符集= UTF-8
  返回路径:deploy@my.org
  X-OriginalArrival时间:2011年11月3日20:28:08.0494(UTC)
  FILETIME = [19601CE0:01CC9A67]
  
  部署申请......等等等等等等   BODY:

此外,即使邮件正文中的“错误文本”显示正确的主题,主题也不会出现在电子邮件中。

有谁知道为什么会这样?有8个或更多的收件人打破它是什么?我用Google搜索了一下,找不到任何有关收件人数限制的ActionMailer(即使有,这是一个小的限制)。有什么我想念的吗?任何帮助表示赞赏!我真的需要能够发送给8个或更多的收件人。

更新:直接使用8个或更多地址的数组设置收件人仍然会破坏事情,所以这显然是ActionMailer而不是Capistrano的问题。

recipients ["test1@my.org", "test2@my.org", "test3@my.org", "test4@my.org", 
  "test5@my.org", "test6@my.org", "test7@my.org", "test8@my.org", "test9@my.org"]

3 个答案:

答案 0 :(得分:1)

第7个电子邮件地址后面没有逗号,这可能是问题所在。尝试将字符串传递给recipients,如cap_vars[:notify_emails].join(','),没有换行符。

答案 1 :(得分:0)

尝试将字符串传递给没有逗号的收件人(有报告说逗号有问题),例如:

cap_vars[:notify_emails].join(' ')

答案 2 :(得分:-1)

在调试困难错误时,您可能会忽略一些简单的事情:

  1. 如果其邮件服务器相关将其安装在另一台生产服务器上?如果您不确定邮件服务器正在寻找其他错误可能没有帮助。
  2. 尝试升级rails / ruby​​?也许它是代码中的一个错误