发送电子邮件与Sinatra错误

时间:2014-08-14 18:59:18

标签: javascript ruby email sinatra

我是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模板,但我不确定这是如何工作的。

1 个答案:

答案 0 :(得分:0)

Somewhere in the Pony gem他们尝试通过运行which sendmail命令来查找程序位置,以便他们可以转发要由sendmail发送的电子邮件。该错误可能意味着您的系统上未安装sendmail命令行程序。现在由您决定如何在特定系统上安装它; - )