我正在使用 Sinatra 构建我的第一个投资组合页面。
我有一个“教科书”联系页面,其中包含“姓名”、“电子邮件”和“内容”字段的简单表格。当有人提交表单时,我想收到一封电子邮件通知。
Pony 声称它可以通过简单的“一行”代码发送电子邮件。我已经阅读了 Pony 文档,但是关于如何设置它并不是很详细。
不知道是我设置不正确,代码不对,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