【问题标题】:Sending email with Sinatra error发送带有 Sinatra 错误的电子邮件
【发布时间】:2014-10-08 13:19:41
【问题描述】:

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

【问题讨论】:

    标签: javascript ruby email sinatra


    【解决方案1】:

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

    【讨论】:

    • 我尝试安装 pony、sendmail 和 mailcatcher gems 但我仍然收到相同的错误消息。
    猜你喜欢
    • 2011-08-30
    • 2013-04-14
    • 1970-01-01
    • 2016-12-11
    • 1970-01-01
    • 1970-01-01
    • 2014-01-14
    • 2021-10-06
    • 2012-09-18
    相关资源
    最近更新 更多