我正在尝试向我所有应用程序的用户发送电子邮件。
为了做到这一点,我随时都在使用。
所以我有一个文件/config/initializer/setup_mail.rb和我的配置smtp:
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时,我收到了很多关于我的用户的信息,但我没有收到任何邮件。
我怎么能看到这个bug在哪里? 感谢
答案 0 :(得分:0)
我命令调试发送邮件时出现的错误或问题,您需要更改config / development.rb或config / production.rb的配置设置,以便为动作邮件程序引发错误,如下所示。
config.action_mailer.raise_delivery_errors = true
默认情况下,它设置为false,因此您不会收到任何错误。
希望,这有帮助。
谢谢,
摩尼
答案 1 :(得分:0)
好的,是:tls打破了代码。
所以现在,我在rails控制台中的命令运行完美并发送电子邮件但是什么时候仍然无效。
crontab -l </ p>
# 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
我已重新启动服务器,但我没有收到任何信息。