2012-12-02 49 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 

我必須重新啓動服務器,但我沒有收到任何東西。