我是Ruby和Sinatra的新手,并且每次有人按下提交按钮时都会尝试发送电子邮件。我根据sinatra网站和其他问题安装了Pony gem,但是当我尝试发送它时,请将我发送到一个页面,上面有一张溢出的玻璃图片说:
"Errno::ENOENT at /submit
No such file or directory - which sendmail
file: pony.rb location: ` line: 305"
这是我的代码
post '/submit' do
subject = Subject.new(
:experiment_data => params[:data],
:created_at => Time.now
)
if subject.save
session[:subj_id] = subject.id
require 'pony'
Pony.mail(:to => 'toemail@gmail.com', :from => 'fromemail@yahoo.com', :subject => 'Waz up')
redirect '/submit'
else
return "Failed to save data"
end
end
get '/submit' do
if session[:subj_id]
subj_id = session[:subj_id]
code = Digest::SHA1.hexdigest "#{subj_id}"
erb :submit, :locals => {:code => code, :subj_id => subj_id}
else
redirect '/'
end
end
这是最好的方法吗?我试图发送的电子邮件有很多变量需要填写来自html页面上的javascript变量的数据。我正在考虑使用erb模板,但我不确定这是如何工作的。
答案 0 :(得分:0)
Somewhere in the Pony gem他们尝试通过运行which sendmail
命令来查找程序位置,以便他们可以转发要由sendmail
发送的电子邮件。该错误可能意味着您的系统上未安装sendmail
命令行程序。现在由您决定如何在特定系统上安装它; - )