这是一个使用Rails发送Email的简单指南
1,修改config/environments/development.rb,配置smtp
[code]
config.action_mailer.raise_delivery_errors = true
# set delivery method to :smtp, :sendmail or :test
config.action_mailer.delivery_method = :smtp
# these options are only needed if you choose smtp delivery
config.action_mailer.smtp_settings = {
:address => 'smtp.example.com',
:port => 25,
:domain => 'www.example.com',
:authentication => :login,
:user_name => 'www',
:password => 'secret'
}
[/code]
在production环境下将上述配置移至environment.rb
2,生成mailer
[code]
ruby script/generate mailer user_mailer
[/code]
3,修改UserMailer
[code]
class UserMailer < ActionMailer::Base
def registration_confirmation(user)
recipients user.email
from "webmaster@example.com"
subject "Thank you for Registering"
body :user => user
end
end
[/code]
4,修改Email模板views/user_mailer/registration_confirmation.rhtml
[code]
Hi <%= @user.name %>,
...
[/code]
5,在UsersController中使用UserMailer
[code]
class UsersController < ApplicationController
def create
@user = User.new(params[:user])
if @user.save
UserMailer.deliver_registration_confirmation(@user)
flash[:notice] = "Successfully registered"
redirect_to user_path(@user)
else
render :action => 'new'
end
end
# ...
end
[/code]
1,修改config/environments/development.rb,配置smtp
[code]
config.action_mailer.raise_delivery_errors = true
# set delivery method to :smtp, :sendmail or :test
config.action_mailer.delivery_method = :smtp
# these options are only needed if you choose smtp delivery
config.action_mailer.smtp_settings = {
:address => 'smtp.example.com',
:port => 25,
:domain => 'www.example.com',
:authentication => :login,
:user_name => 'www',
:password => 'secret'
}
[/code]
在production环境下将上述配置移至environment.rb
2,生成mailer
[code]
ruby script/generate mailer user_mailer
[/code]
3,修改UserMailer
[code]
class UserMailer < ActionMailer::Base
def registration_confirmation(user)
recipients user.email
from "webmaster@example.com"
subject "Thank you for Registering"
body :user => user
end
end
[/code]
4,修改Email模板views/user_mailer/registration_confirmation.rhtml
[code]
Hi <%= @user.name %>,
...
[/code]
5,在UsersController中使用UserMailer
[code]
class UsersController < ApplicationController
def create
@user = User.new(params[:user])
if @user.save
UserMailer.deliver_registration_confirmation(@user)
flash[:notice] = "Successfully registered"
redirect_to user_path(@user)
else
render :action => 'new'
end
end
# ...
end
[/code]