2013-02-05 42 views
1

我想从联系表格(内置HTML)发送电子邮件与Sinatra内的小马宝石,我遵循文档,但必须丢失一些东西。发送邮件与小马和Sinatra

这是小马配置

get '/contact' do 
    erb :contact, :layout => :layout 
end 

post '/contact' do 
require 'pony' 
Pony.mail({ 
:from => params[:name], 
    :to => 'myemailaddress', 
    :subject => params[:name] + "has contacted you via the Website", 
    :body => params[:comment], 
    :via => :smtp, 
    :via_options => { 
    :address    => 'smtp.gmail.com', 
    :port     => '587', 
    :enable_starttls_auto => true, 
    :user_name   => 'myemailaddress', 
    :password    => 'mypassword', 
    :authentication  => :plain, 
    :domain    => "localhost.localdomain" 
    } 
    }) 
    redirect '/success' 
    end 


    get('/success') do 
@notification = "Thanks for your email. I'll be in touch soon." 
erb :index, :layout => :layout 
    end 

所以点击提交的联系方式页面被重新使用没有消息

这里呈现的是我的提交按钮

<button type="submit" class="btn" value="send">Submit</button> 

后,我失去了一个触发这里有什么地方?

回答

1

你确定你有表单设置做post?如果它似乎刷新页面form标记可能没有正确设置。另外,提交的按钮应该是input类型为submit的标签。该HTML将需要看起来像这样:

<form action="/contact" method="post"> 
    <!-- your form elements go here --> 

    <input type="submit" value="Sign in"> 
</form> 
+0

你在哪里吧,对我而言愚蠢的错误不设置操作和后...现在它不喜欢的:主题=> PARAMS [:名字] +“有通过网站与你联系“,这是关于+ – Richlewis

+0

嗯抛出一个无类错误嗯。看起来像'params [:name]'可能是'nil'。确保名称设置为名称的表单元素。像这样:''。如果你想避免'nil'指针错误,不管怎么样,你都可以这样做':subject =>“#{params [:name] ||'Someone'}通过网站与你联系” 。如果没有传入'name'参数,这将使其默认为'Someone'。 – Batkins

+0

这就是我所知道的type = text,id = name,在那里混淆了,再次感谢 – Richlewis