Sinatra で最初のポートフォリオ ページを作成しています。
「名前」、「電子メール」、および「コンテンツ」フィールドを含む簡単なフォームを備えた「教科書」連絡先ページがあります。誰かがフォームを送信したときに、メール通知を受け取りたいです。
Pony は、単純な「1 行」のコードで電子メールを送信できると主張しています。Pony のドキュメントを読みましたが、設定方法があまり詳しくありません。
正しく設定していないのか、コードが正しくないのか、Pony が最適なツールではないのか、開発環境でメールの送信が許可されていないのかはわかりません。
以下のコードは、post メソッドから電子メールを送信することを想定しており、メソッドを介して PostgreSQL データベースにデータを保存していますsave_message
。データは正しく保持されています。
#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