2014-11-04 125 views
4

我試過所有我能想到的用Rails 4.1.6(本地開發)發送電子郵件,但沒有任何工作。使用郵戳我已經在我的development.rb和application.rb中如下:Rails 4 actionmailer不發送電子郵件

config.action_mailer.default_url_options = { host: 'localhost', port: 3000 } 
config.action_mailer.delivery_method = :postmark 
config.action_mailer.postmark_settings = { :api_key => API_KEY } 
config.action_mailer.perform_deliveries = true 

和GMAIL我想:

config.action_mailer.default_url_options = { host: 'localhost', port: 3000 } 
config.action_mailer.perform_deliveries = true 
config.action_mailer.delivery_method = :smtp 
config.action_mailer.smtp_settings = { 
    address:    'smtp.gmail.com', 
    port:     587, 
    domain:    'gmail.com', 
    user_name:   'my_email', 
    password:    'my_password', 
    authentication:  'plain', 
    enable_starttls_auto: true } 

我梅勒類看起來像這樣:

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

    def claim_business business 

    mail(
     :subject => 'hello', 
     :to  => '[email protected]', 
     :from => '[email protected]', 
     :html_body => '<strong>Hello John Doe<strong>', 
     :track_opens => 'true' 
    ) 

    end 
end 

最後,我通過以下方式發送電子郵件:BusinessMailer.claim_business @business

當我觸發claim_business方法我在控制檯中看到BusinessMailer#claim_business: processed outbound mail in 14.1ms,沒有錯誤消息。誰能告訴我我在這裏失蹤了什麼?

+1

添加'config.action_mailer.raise_delivery_errors = true',看看會發生什麼。 – blelump 2014-11-04 15:12:21

+1

@blelump我有,並沒有得到任何額外的輸出到控制檯,只是標準的'處理出站郵件' – 2014-11-04 15:15:32

+2

好吧,那麼:'BusinessMailer.claim_business(@business).deliver'? – blelump 2014-11-04 15:16:32

回答

16

您錯過了deliver方法最終發送電子郵件。嘗試:

BusinessMailer.claim_business(@business).deliver 
+2

謝謝。似乎有變化。我在ActionMailer類中有我的傳遞方法。它發送正常 - 然後我升級到4.2.3,它失敗了。進入調用類解決.. .. – Tim 2015-07-04 23:17:42

相關問題