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