Action Mailer в Rails 3
Источники
rails mailit
cd mailit
rails g scaffold user name:string email:string
rake db:migrate
rails g mailer user_mailer
bundle install
# config/initializers/setup_mail.rb
ActionMailer::Base.smtp_settings = {
:address => "smtp.gmail.com",
:port => 587,
:domain => "railscasts.com",
:user_name => "railscasts",
:password => "secret",
:authentication => "plain",
:enable_starttls_auto => true}
ActionMailer::Base.default_url_options[:host] = "localhost:3000"
Mail.register_interceptor(DevelopmentMailInterceptor) if Rails.env.development?# app/mailers/user_mailer.rb
def registration_confirmation(user) @user = user attachments["rails.png"] = File.read("#{Rails.root}/public/images/rails.png") mail(:to => "#{user.name} <#{user.email}>", :subject => "Registered") end
class UserMailer < ActionMailer::Base
default :from => "ryan@railscasts.com"end
# users_controller.rb
UserMailer.registration_confirmation(@user).deliver# Gemfile
gem "mail", "2.1.3"# lib/development_mail_interceptor.rb
message.to = "ryan@railscasts.com" end
class DevelopmentMailInterceptor
def self.delivering_email(message)
message.subject = "#{message.to} #{message.subject}"end
<!— views/user_mailer/registration_confirmation.text.erb —>
<%= @user.name %>,Thank you for registering!
Edit profile: <%= edit_user_url(@user) %>
<!— views/user_mailer/registration_confirmation.html.erb —>
<p><%= @user.name %>,</p><p>Thank you for registering!</p>
<p><%= link_to "Edit profile", edit_user_url(@user) %></p>


