ben

OMÜ , Bilgisayar Mühendisliği, 13'

17 Kasım 2015 Salı

Action Mailer


Rails uygulaması üzerinden mail hesaplarına mail gönderme işlemi için mailer sınıfını kullanıyoruz.

User modelimiz olsun ve kullanıcı eklendiğinde  , eklenen kullanıcının mail adresine mail gitsin.

terminal


rails g scaffold user name:string email:string
rake db:migrate
rails g mailer user_mailer

config/initializers altına setup_mail.rb dosyası oluşturup düzenleyelim

   ActionMailer::Base.smtp_settings = {
     :address              => "smtp.gmail.com",
     :port                 => 587,
     :domain               => "gmail.com",
     :user_name            => "esryrlmz",
     :password             => "******",
     :authentication       => "plain",
     :enable_starttls_auto => true
   }

app/mailers/user_mailer.rb 

class UserMailer < ActionMailer::Base
    default :from=>"esryrlmz@gmail.com"
  
     def registration_confirmation(user,subject)
     mail(:to=>user.email, :subject=>subject)
   end
end





controller/usermails_controller.rb



  def create
    @usermail = Usermail.new(params[:usermail])

    respond_to do |format|
      if @usermail.save
          UserMailer.registration_confirmation(@usermail,"içerik").deliver
        format.html { redirect_to @usermail, notice: 'Usermail was successfully created.' }
        format.json { render json: @usermail, status: :created, location: @usermail }
      else
        format.html { render action: "new" }
        format.json { render json: @usermail.errors, status: :unprocessable_entity }
      end
    end
  end


view/user_mailer/ altına registration_confirmation.text.erb  dosyası olusturup duzenleyelim bu kısım mail içeriğini tutuyor


<%= @user.name %>,

Rails uygulamasına kaydınız için teşekkürler..


view/user_mailer/ registration_confirmation.html.erb dosyasınıda oluşturup düzenleyelim

<p><%= @user.name %>,</p>

<p> Rails uygulamasına kaydınız için teşekkürler.. </p>







railscast kaynak: http://railscasts.com/episodes/206-action-mailer-in-rails-3?autoplay=true