2012-12-02 53 views
0

我是tryong发送电子邮件给我的所有应用程序的用户。每周随时发送电子邮件

为了做到这一点,我使用任何时候。

所以我有一个文件/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我收到了很多关于我的用户的信息,但我没有收到任何邮件。

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

+0

我不知道这是否会导致问题 - 但它看起来好像你没有指定':from' – yas4891

+0

而不是':tls => true'是否应该不是':enable_starttls_auto => true'? – mccannf

+0

你把shedule.rb文件放在哪里? – roadev

回答

0

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

config.action_mailer.raise_delivery_errors =真

默认情况下,它被设置为false,因此你不能得到任何错误。

希望它有帮助。

感谢,

玛尼

+0

这很有帮助!谢谢。 – cecile

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 

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