2012-03-25 25 views
2

我想在開發環境中從Rails發送郵件。我的消息正在呈現(我可以在終端中看到它正在運行rails console)。Rails 3.0,ActionMailer交付不起作用,沒有顯示錯誤信息

config/development.rb我(是的,端口確實是26):

config.action_mailer.delivery_method = :smtp 
config.action_mailer.perform_deliveries = true 
config.action_mailer.raise_delivery_errors = true 
ActionMailer::Base.smtp_settings = { 
    :address => "mail.mydomain.com", 
    :port => 26, 
    :user_name => "[email protected]", 
    :password => "removed", 
    :authentication => :login 
} 

我在mailers/user_mailer

class UserMailer < ActionMailer::Base 
    default from: "[email protected]" 
    def send_an_email 
    mail(:to => "[email protected]", :subject => "Test from Rails") 
    end 
end 

我有一個是越來越在views/user_mailer/send_an_email.text.erb正確地呈現一個視圖。根據頁面請求,我打電話給UserMailer.send_an_email.deliver

Rails不會抱怨我的配置。我在rails server控制檯輸出中看到消息。但是,我從來沒有收到電子郵件,並且在控制檯輸出中看不到任何錯誤消息(如上所示,raise_delivery_errors = true

+0

我有同樣的問題。你能找出你的原因嗎? – brianvaughn 2012-05-05 02:18:38

+0

不幸的是,沒有。 – Steve 2012-05-10 13:29:45

+0

非工作smtp連接也會以類似的方式運行。 – rubish 2012-05-11 14:46:14

回答

6

Steve,偶然您確定您正在調用交付方法?

mail(:to => "[email protected]", :subject => "Test from Rails").deliver 

我忘了做,以及缺乏的錯誤是相當困惑。:)

+0

我不再在那個項目上工作。但我會接受這個,除非有人反對。 – Steve 2012-05-12 04:04:58

+0

有沒有辦法測試交付方式?所以如果失敗,你可以重定向用戶或警告他們? – 2014-01-20 23:06:09

+0

在Rails 4中#.deliver已棄用,並且從版本5開始將不得不使用deliver.now – 2015-08-21 10:37:42