Rails 使用gmail开发模式发送邮件
Rails send mail with gmail development mode
在开发中我没有弄清楚如何从 gmail 发送邮件environment.It 没有发送电子邮件。我没看懂 rails 指南,而且我想知道生产环境是否相同?
config/development.rb
config.action_mailer.raise_delivery_errors = true
config.action_mailer.default_url_options = { :host => 'something.com' }
config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = {
address: 'smtp.gmail.com',
port: 587,
domain: 'mail.google.com',
user_name: 'myusername@gmail.com',
password: 'mypassword',
authentication: 'plain',
enable_starttls_auto: true }
mailer/user_mailer.rb
default :from => 'something.com'
def welcome_email(user)
@user = user
@url = 'http://something.com'
mail(to: @user.email, subject: 'Welcome')
end
编辑
where I call, in users create method,
UserMailer.welcome_email(@user).deliver_now
您可以通过两种方式调用邮件程序方法来发送电子邮件,
在UsersController
的create
行动中
def create
#your codes and logics to save user...
UserMailer.welcome_email(@user).deliver_now
#your codes goes here ...
end
在User
模型中after_create
回调
class User < ActiveRecord::Base
after_create :send_email
def send_email
UserMailer.welcome_email(self).deliver_now
end
end
我更喜欢第二个发送电子邮件,使用模型回调而不是在控制器中。
config.action_mailer.perform_deliveries = true
config.action_mailer.raise_delivery_errors = true
在 development.rb
中尝试此操作,它将发送邮件或在控制台中引发传递错误。
在开发中我没有弄清楚如何从 gmail 发送邮件environment.It 没有发送电子邮件。我没看懂 rails 指南,而且我想知道生产环境是否相同?
config/development.rb
config.action_mailer.raise_delivery_errors = true
config.action_mailer.default_url_options = { :host => 'something.com' }
config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = {
address: 'smtp.gmail.com',
port: 587,
domain: 'mail.google.com',
user_name: 'myusername@gmail.com',
password: 'mypassword',
authentication: 'plain',
enable_starttls_auto: true }
mailer/user_mailer.rb
default :from => 'something.com'
def welcome_email(user)
@user = user
@url = 'http://something.com'
mail(to: @user.email, subject: 'Welcome')
end
编辑
where I call, in users create method,
UserMailer.welcome_email(@user).deliver_now
您可以通过两种方式调用邮件程序方法来发送电子邮件,
在
UsersController
的create
行动中def create #your codes and logics to save user... UserMailer.welcome_email(@user).deliver_now #your codes goes here ... end
在
User
模型中after_create
回调class User < ActiveRecord::Base after_create :send_email def send_email UserMailer.welcome_email(self).deliver_now end end
我更喜欢第二个发送电子邮件,使用模型回调而不是在控制器中。
config.action_mailer.perform_deliveries = true
config.action_mailer.raise_delivery_errors = true
在 development.rb
中尝试此操作,它将发送邮件或在控制台中引发传递错误。