切换电子邮件后,梅勒停止工作

时间:2015-01-10 16:43:01

标签: ruby-on-rails ruby ruby-on-rails-4 smtp mailer

几个星期前,我创建了一个邮件程序对象,每当创建一个新的“Thing”时发送一封电子邮件。它顺利运作,但我随后注释了相关的部分并且暂时没有处理它。今天我又试了一次,什么都没发生。我发现我使用的电子邮件帐户由于某种原因已断开连接,因此我尝试使用其他电子邮件帐户。依然没有。有没有人猜测为什么它可能没有做任何事情,或者我如何调试它?我确定用户名/密码/域名是准确的。

配置/环境/ development.rb

config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = {
  address: 'smtp.gmail.com',
  port: 587,
  domain: 'gmail.com',
  user_name: 'username',
  password: 'password',
  authentication: 'plain',
  enable_starttls_auto: true
}

应用/邮寄者/ user_mailer.rb

class UserMailer < ActionMailer::Base
  default from: 'username@gmail.com'

  def notify(user)
    @user = user
    mail(to: @user.email,subject: "Notification")
  end
end

应用/视图/ user_mailer文件/ notify.html.erb

<html>
  <head>
    <meta content='text/html; charset=UTF-8' http-equiv='Content-Type' />
  </head>
  <body>
    <h1>Heading</h1>
    <p>First paragraph</p>
    <p>Second paragraph</p>
  </body>
</html>

应用/控制器/ users_controller.rb

def create
  #...
  UserMailer.notify(@user).deliver
end

2 个答案:

答案 0 :(得分:1)

试试这个:

config.action_mailer.delivery_method = :smtp
config.action_mailer.default_url_options = { host:'localhost', port: '3000' }
config.action_mailer.perform_deliveries = true
config.action_mailer.raise_delivery_errors = true
config.action_mailer.default :charset => "utf-8"
config.action_mailer.smtp_settings = {
  address: 'smtp.gmail.com',
  port: 587,
  domain: 'localhost:3000',
  user_name: 'username@gmail.com',
  password: 'password',
  authentication: 'plain',
  enable_starttls_auto: true
}

答案 1 :(得分:0)

如果您正在开发环境中进行测试,请添加以下行并检查
config.action_mailer.perform_deliveries = true config.action_mailer.raise_delivery_errors = true