Thursday, November 20, 2014

Wysyłanie maili w Sinatrze

czwartek, listopad 20, 2014 Dodany przez Miłosz Osiński #RUBY ON RAILS ##
W tym artykule pokaże jak w prosty sposób wysyłać maila w aplikacji opartej na frameworku Sinatra

Najpierw musimy dodać gem mail do Gemfile:
gem "mail"
Instalujemy gem:
bundle install
Konfigurujemy połączenie z naszym kontem pocztowym (przykład AZ):
  Mail.defaults do
    delivery_method :smtp, {
      :address => 'mailng.az.pl',
      :port => 587,
      :domain => 'twoja-domena.pl',
      :user_name => ENV['smtp_login'],   # korzystając z heroku config vars 
      :password => ENV['smtp_password'], # przechowujemy login oraz hasło do smtp
      :authentication => 'plain',
      :enable_starttls_auto => true,
      :openssl_verify_mode  => 'none'
    }
  end
Tu fragment w którym wysyłamy maila:
  post '/mail' do
    contact_params = params.dup
    begin
      mail = Mail.deliver do
        to "[email protected]"
        from contact_params[:email]
        subject contact_params[:subject]
        text_part do
          body contact_params[:text]
        end
      end
      flash[:success] = "Thank you for your message. We'll be in touch soon."
    rescue Exception => exception
      flash[:error] = "Upss... Something goes wrong. We work on it."
    end
    redirect to('/')
  end