您的邮件程序的配置应该/可以在两者中定义development
,production
此配置的目的是当您设置它时,将使用actionmailer
这些 SMTP 选项。你可以有一个简单的邮件,如下所示:
梅勒
class UserMailer < ActionMailer::Base
default :from => DEFAULT_FROM
def registration_confirmation(user)
@user = user
@url = "http://portal.herokuapp.com/login"
mail(:to => user.email, :subject => "Registered")
end
end
控制器
def create
@title = 'Create a user'
@user = User.new(params[:user])
if @user.save
UserMailer.registration_confirmation(@user).deliver
redirect_to usermanagement_path
flash[:success] = 'Created successfully.'
else
@title = 'Create a user'
render 'new'
end
end
所以这里发生的是,当create
使用该操作时,这会触发邮件程序UserMailer
查看上面的 UserMailer 它使用 ActionMailer 作为基础。按照下面显示的 SMTP 设置,可以在config/environments/production.rb
development.rb 和 development.rb中定义
您将拥有以下内容:
config.action_mailer.default_url_options = { :host => 'portal.herokuapp.com' }
config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = {
:address => 'smtp.gmail.com',
:port => 587,
:domain => 'gmail.com',
:user_name => 'EMAIL_ADDRESS@gmail.com',
:password => 'pass',
:authentication => 'login',
:enable_starttls_auto => true
}
如果您想在开发模式下定义 SMTP 设置,您将替换
config.action_mailer.default_url_options = { :host => 'portal.herokuapp.com' }
和
config.action_mailer.default_url_options = { :host => 'IP ADDRESS HERE:3000' }
这应该是一个足够彻底的解释,可以让你朝着正确的方向前进。