2015-10-06 38 views
0

我的Rails郵件程序在幾個月前完美運行。我很久沒有處理它了,我也不記得任何改變。但是現在,當我通過控制檯激活郵件程序時,沒有發送電子郵件,雖然我沒有收到任何錯誤。Rails郵件程序拋出錯誤,但電子郵件未到達

我三重檢查了電子郵件地址和密碼是否正確。我還根據this answer設置了我的電子郵件。但沒有電子郵件發送。如果出現問題,我是否應該至少在控制檯中出現錯誤?

我正在使用Rails 4.0.10。

配置/環境/ development.rb

Website::Application.configure do 
    config.action_mailer.delivery_method = :smtp 
    config.action_mailer.default_url_options = { host:'localhost', port: '3000' } 
    config.action_mailer.perform_deliveries = true 
    config.action_mailer.raise_delivery_errors = true 
    config.action_mailer.default :charset => "utf-8" 
    config.action_mailer.smtp_settings = { 
    address: 'smtp.gmail.com', 
    port: 587, 
    domain: 'localhost:3000', 
    user_name: '[email protected]', 
    password: 'password', 
    authentication: 'plain', 
    enable_starttls_auto: true 
    } 
end 

應用程序/郵寄者/ user_mailer文件

class UserMailer < ActionMailer::Base 
    default from: "[email protected]" 

    def notify(user) 
    @user = user 
    mail(to: @user.email,subject: "subject") 
    end 
end 

控制檯

$ UserMailer.notify(User.first) 
Rendered user_mailer/notify.html.erb (0.4ms) 
=> #<Mail::Message:2623523, Multipart: false, Headers: <From: [email protected]>, <To: [email protected]>, <Subject: subject>, <Mime-Version: 1.0>, <Content-Type: text/html>> 
+0

你能張貼控制器動作,您所呼叫的郵件的方法? – Pavan

+0

@Pavan我只是在我的開發控制檯中調用它。 –

回答

1

使用梅勒方法deliver,在deliver_nowdeliver_latercontrollerModel

UserMailer.notify(User.first).deliver 
+0

我正在使用Rails 4.0.10,所以我不認爲這些方法已經被引入。 –

+0

然後使用'.deliver' – Prashant4224

+0

在那裏,我們去,謝謝! –

0

您必須致電.deliver_now.deliver_later您的notify方法的結果。看看如何使用ActionMailer瞭解更多信息。

+0

我使用Rails 4.0.10,所以我不認爲這些方法已經被引入。 –

相關問題