我已经设置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"]
答案 0 :(得分:1)
第7个电子邮件地址后面没有逗号,这可能是问题所在。尝试将字符串传递给recipients
,如cap_vars[:notify_emails].join(',')
,没有换行符。
答案 1 :(得分:0)
尝试将字符串传递给没有逗号的收件人(有报告说逗号有问题),例如:
cap_vars[:notify_emails].join(' ')
答案 2 :(得分:-1)
在调试困难错误时,您可能会忽略一些简单的事情: