Ruby on rails 如何从ruby文件中使用linux“mail”命令发送邮件?
在下面的代码中,我必须发送一封关于进程状态的电子邮件,无论进程是否已完成、出错或超时Ruby on rails 如何从ruby文件中使用linux“mail”命令发送邮件?,ruby-on-rails,ruby,Ruby On Rails,Ruby,在下面的代码中,我必须发送一封关于进程状态的电子邮件,无论进程是否已完成、出错或超时 def check_for_forecasts wait_until_time = Time.now + timeout.minutes loop do RAILS_DEFAULT_LOGGER.info "Checking if process has finished" if find_token != 0 update_completion_sta
def check_for_forecasts
wait_until_time = Time.now + timeout.minutes
loop do
RAILS_DEFAULT_LOGGER.info "Checking if process has finished"
if find_token != 0
update_completion_status
RAILS_DEFAULT_LOGGER.info "Process has finished"
break
elsif find_error != 0
update_timed_out_field
RAILS_DEFAULT_LOGGER.info "Process has errored"
break
elsif DateTime.now > wait_until_time
update_timed_out_field
RAILS_DEFAULT_LOGGER.info "Process has timed out"
break
else
RAILS_DEFAULT_LOGGER.info "Waiting for Process to finish"
sleep(60) # if it hasn't completed then wait 1 min and try again.
end
end
end
通常,我们只在.sh文件中使用linux“mail”命令,而不在.rb文件中使用。下面是如何编写“mail”命令以在.sh文件中发送邮件
mail -s "the process has been finished" abc@xyz.com<<EOM
The process has finished successfully.
EOM
有没有办法在.rb文件中使用simple mail命令?或者我必须为同样的东西安装gems吗
请帮忙。
谢谢。在ruby中,这是一种非常丑陋但非常有用的方法:
to = "abc@xyz.com"
subject = "the process has been finished"
content = "The process has finished successfully."
`mail -s "#{subject}" #{to}<<EOM
#{content}
EOM`
在ruby中,一种非常丑陋但非常有用的方法可以做到这一点:
to = "abc@xyz.com"
subject = "the process has been finished"
content = "The process has finished successfully."
`mail -s "#{subject}" #{to}<<EOM
#{content}
EOM`
您可以在Ruby中使用backticks来运行命令行指令。所以你想要的是:
`mail -s "the process has been finished" abc@xyz.com<<EOM
The process has finished successfully.
EOM`
您可以在Ruby中使用backticks来运行命令行指令。所以你想要的是:
`mail -s "the process has been finished" abc@xyz.com<<EOM
The process has finished successfully.
EOM`
嗨,罗拉,谢谢你的回答。我可以在.rb文件中输入相同的代码来发送邮件,而不是在.sh文件中创建一个函数并从ruby代码调用它吗?是的,这就是想法,为了能够通过运行系统命令从ruby发送电子邮件,我还写了如何将ruby变量添加到命令中。试着把它放到一个.rb文件中,执行它,你应该会收到你的电子邮件,只要确保将变量的值更改为hi rorra,谢谢你的回答。我可以在.rb文件中输入相同的代码来发送邮件,而不是在.sh文件中创建一个函数并从ruby代码调用它吗?是的,这就是想法,为了能够通过运行系统命令从ruby发送电子邮件,我还写了如何将ruby变量添加到命令中。试着把它放到一个.rb文件中,执行它,你就会收到你的电子邮件,只要确保将变量的值改为