【发布时间】:2015-02-16 18:48:05
【问题描述】:
我正在使用 Sinatra 构建我的第一个投资组合页面。
我有一个“教科书”联系页面,其中包含“姓名”、“电子邮件”和“内容”字段。当有人提交表单时,我想收到一封电子邮件通知。
Pony 声称它可以通过简单的“一行”代码发送电子邮件。我已经阅读了the Pony documentation,但它的设置方法不是很详细。
不知道是我设置不正确,代码不对,Pony不是最好的工具,还是我的开发环境不允许发送邮件。
下面的代码应该是通过 post 方法发送电子邮件,然后通过save_message 方法将数据保存到 PostgreSQL 数据库中。数据已正确持久化。
#server.rb
require 'sinatra'
require 'pony'
require_relative 'model/methods'
get '/contact' do
erb :contact
end
post '/thankyou' do
unless params[:name] == '' || params[:email] == '' || params[:content] == ''
Pony.options = {
:subject => "Portfolio page: Message delivery from #{params[:name]}",
:body => "#{params[:content]}",
:via => :smtp,
:via_options => {
:address => 'smtp.1and1.com',
:port => '587',
:enable_starttls_auto => true,
:user_name => ENV["USER_EMAIL_ADDRESS"],
:password => ENV["SMTP_PASSWORD"],
:authentication => :login,
:domain => 'nterrafranca.com'
}
}
Pony.mail(:to => ENV["DESTINATION_EMAIL_ADDRESS"])
save_message(params[:name], params[:email], params[:content])
end
redirect '/'
end
【问题讨论】:
-
欢迎来到 Stack Overflow。虽然在问题中非常友好和熟悉是很好的,但这真的不是要使用的写作风格。将 Stack Overflow 视为一本编程食谱,由社区编辑,类似于 Wikipedia,其中问题是食谱中的问题陈述,以及相关的答案。绒毛不是必需的,也不一定是需要的;相反,写出深思熟虑的问题,你会做得很好。