2011-11-14 50 views
0

我想使用Delayed_job從我的rails 3.1應用程序異步發送郵件。Delay_job gem不發送郵件

我按照github頁面上的說明,但我的郵件沒有被髮送(他們之前我曾嘗試使用這個寶石)。我看到他們被放在作業臺上,他們正在被消耗,但bundle exec rake jobs:work -v任務沒有給出任何輸出。

這是在我的控制器代碼:

Notifier.delay.project_deleted(@project, current_user, u.email) 

,在我的郵件代碼

def project_deleted(project, admin, destination) 
    @project = project 
    @admin = admin 

    mail to: destination 
end 

編輯:我也這樣做的窗戶,和sqlite3的分貝,如果事項。編輯2:另外,有些奇怪:如果我添加.deliver,我知道我不應該,任務得到執行和郵件發送;儘管如此,控制器迴應:'undefined method deliver'for#

+0

您可以在交互模式下啓動delayed_job worker嗎? –

+0

我該怎麼做? – dcastro

+0

運行'bundle exec rake jobs:clear',然後按手冊(https://github.com/tobi/delayed_job)中所述創建腳本/ job_runner腳本,然後從控制檯運行它。 –

回答

0

我不確定Notifier.delay.project_deleted(@project,current_user,u.email)的作用。

這是我會做什麼來確定問題。首先配置Hoptoad。然後=>

def project_deleted(project, admin, destination) 
    @project = project 
    @admin = admin 

    mail to: destination 
rescue Exception => e 
    # send error to hoptoad 
    HoptoadNotifier.notify(
     :error_class => "Unable to Send Mail", 
     :error_message => "Unable to send mail. ERROR: #{e.message}" 
    ) 
end