0

我正在尝试向我的所有应用程序用户发送电子邮件。

为了做到这一点,我随时都在使用。

所以我有一个带有我的配置 smtp 的文件 /config/initializer/setup_mail.rb:

ActionMailer::Base.smtp_settings = {
    :tls => true,
    :address => "smtp.gmail.com",
    :port => "587",
    :domain => "miiaou.fr",
    :authentication => :plain,
    :user_name => "test.cicelle",
    :password => "myPasswordGoogle"
}

ActionMailer::Base.default_url_options[:host] = "miiaou.fr"

在我的 user.rb 模型中:

def self.mail_recap_semaine
    @user = User.all
    @user.each do |u|
      UserMailer.mail_recap_semaine(u.email).deliver
    end
  end

在 user_mailer.rb

def mail_recap_semaine(email)
    mail(:to => email, :subject => "Weekly email from footyaddicts")
  end

在 schedule.rb 中(每 10 分钟一次,所以我可以看看它是否有效)

every 10.minutes do
   runner "User.mail_recap_semaine"
end

当我在 Rails 控制台中运行 User.mail_recap_semaine 时,我得到了很多关于我的用户的信息,但我没有收到任何邮件。

我怎么能看到错误在哪里?谢谢

4

2 回答 2

0

我为了调试发送邮件时发生的错误或问题,您需要更改 config/development.rb 或 config/production.rb 的配置设置以引发操作邮件程序的错误,如下所示。

config.action_mailer.raise_delivery_errors = true

默认情况下,它设置为 false,因此您不会收到任何错误。

希望能帮助到你。

谢谢,

玛尼

于 2012-12-03T11:36:13.680 回答
0

好的,是 :tls 破坏了代码。

所以现在,我在 rails 控制台中的命令完美运行并发送电子邮件,但无论何时仍然无法正常工作。

crontab -l

# Begin Whenever generated tasks for: miiaou
0,10,20,30,40,50 * * * * /bin/bash -l -c 'cd /home/miiaou/miiaou && script/rails runner -e production '\''User.mail_recap_semaine'\'''

# End Whenever generated tasks for: miiaou

我已经重新启动服务器,但我没有收到任何东西。

于 2012-12-03T15:39:23.840 回答