我正在为大厨(devops)工作,我有一个帮助程序库,其中包含以下代码
require 'net/smtp'
module HandlerSendEmail
class Helper
def send_email_on_run_failure(node_name)
message = "From: Chef <chef@chef.io>\n"
message << "To: Grant <xyz@test.com>\n"
message << "Subject: Chef run failed\n"
message << "Date: #{Time.now.rfc2822}\n\n"
message << "Chef run failed on #{node_name}\n"
Net::SMTP.start('localhost', 25) do |smtp|
smtp.send_message message, 'chef@chef.io', 'xyz@test.com'
end
end
端 端
但是,当我运行食谱时,我得到了
Chef Client failed. 0 resources updated in 02 seconds
[2017-10-30T05:19:38+00:00] ERROR: Connection refused - connect(2) for "localhost" port 25
[2017-10-30T05:19:38+00:00] ERROR: Connection refused - connect(2) for "localhost" port 25
我尝试将端口更改为90以及其他一些选项我一直得到同样的错误。在stackoverflow上的几个帖子上已经有一些解决方案可用,但所有这些都在谈论我的开发环境中不存在的其他一些.rb文件
Connection refused - connect(2) Ruby on Rails Mail Setup Errno::ECONNREFUSED: Connection refused - connect(2) for action mailer
答案 0 :(得分:1)
你需要让一个实际的SMTP服务器在localhost上监听,我猜你没有。没有更多信息,但很难说。如果您不想运行自己的中继服务器,可以通过互联网查找有关通过GMail,Amazon SES,Sparkpost,Sendgrid设置出站SMTP的说明,还可以更多。