2012-03-25 26 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