Screencast: ActionMailer in Rails 3

Auch ActionMailer wurde in Rails 3 neu geschrieben und bietet nun eine einfache Möglicheit es zu benutzen. In der neuen Version baut ActionMail auf dem gem Mail auf. Ryan zeigt diese Woche wie es benutzt werden kann.

 

Download:

Download (27.5 MB, 12:20)
Alternative Download für iPod & Apple TV (16.3 MB, 12:20)

 

Resourcen:

 

Quellcode:

[bash]
rails mailit
cd mailit
rails g scaffold user name:string email:string
rake db:migrate
rails g mailer user_mailer
bundle install
[/bash]

[ruby]
# 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
class UserMailer < ActionMailer::Base
default :from => "ryan@railscasts.com"

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
end

# users_controller.rb
UserMailer.registration_confirmation(@user).deliver

# Gemfile
gem "mail", "2.1.3"

# lib/development_mail_interceptor.rb
class DevelopmentMailInterceptor
def self.delivering_email(message)
message.subject = "#{message.to} #{message.subject}"
message.to = "ryan@railscasts.com"
end
end
[/ruby]

[html]
<!– 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>
[/html]

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.