【Sinatra】ponyを使ってコンタクト・メールフォームを作る
ponyのREADMEを参考にしながらSinatraアプリでコンタクトフォームを作ってみる。コンタクトフォームに情報を入力して送信したら、メールが届く仕組み。
mail送信用のgem , ponyを使う。 | 毒林檎のblog
ルートがPOSTでhttpのリクエストをもらったときにPonyでメールを送信する。
require 'sinatra' require 'pony' ... post '/' do name = params[:name] email = params[:email] message=params[:message] @isSuccessSendingEmail = Pony.mail(:to => "yuta.totz@gmail.com", :body => message, :subject => "Contact from Web Site of Techlab", :from => "#{name}<#{email}>", :via => :smtp, :via_options => { :enable_starttls_auto => true, :address => "smtp.gmail.com", :port => "587", :user_name => "yuta.totz@gmail.com", :password => "password for your app", :authentication => :plain, :domain => "gmail.com" } ) erb :index end
エラーが出たのでぐぐってみたら、以下の記事が。
googleのアカウントで2段階認証をonにして、特定のアプリのパスワードを設定したら、無事送信できるようになりました!!!!
環境変数を使ってパスワードを扱う方法もまとめておこう。