Rails 3邮件程序无法正常工作且未记录任何错误

我尝试了各种配置,但仍然无法在我的开发环境中从rails发送电子邮件。

我安装mailutils从命令行尝试这个,它工作,我收到了电子邮件(当然是垃圾邮件):echo test | mail -s主题user@example.com

这是我的配置:

# Don't care if the mailer can't send config.action_mailer.raise_delivery_errors = true # still no logs about emails config.action_mailer.delivery_method = :smtp config.action_mailer.perform_deliveries = true # I can't believe I have to add this option. Does it even exist? I found it on google. config.action_mailer.smtp_settings = { :enable_starttls_auto => true, :address => "smtp.gmail.com", :port => 587, :domain => "gmail.com", :authentication => :login, :user_name => "some_user@gmail.com", :password => "abc123", } 

这是邮件中的代码:

 class UserMailer  "root@ubuntu" def test_email Rails.logger.debug 'test_email' mail(:to => 'user@example.com', :subject => "testing rails") end end 

控制器:

 class PagesController < ApplicationController def home UserMailer.test_email end end 

development.log:

 [2012-03-01 18:26:45.859] DEBUG [bb44dee806d73eb60ab3ae16297f5c02] [127.0.0.1] [GET] [http://myapp:3000/] test_email [2012-03-01 18:26:45.888] INFO [bb44dee806d73eb60ab3ae16297f5c02] [127.0.0.1] [GET] [http://myapp:3000/] Rendered user_mailer/test_email (1.6ms) [2012-03-01 18:26:45.898] INFO [bb44dee806d73eb60ab3ae16297f5c02] [127.0.0.1] [GET] [http://myapp:3000/] Rendered pages/home.html.erb within layouts/application (1.1ms) [2012-03-01 18:26:46.815] INFO [bb44dee806d73eb60ab3ae16297f5c02] [127.0.0.1] [GET] [http://myapp:3000/] Completed 200 OK in 455ms (Views: 112.4ms) 

我也尝试过使用控制台:

 root@ubuntu:/srv/www/myapp# rails c Loading development environment (Rails 3.2.1) irb(main):001:0> UserMailer.test_email => #<Mail::Message:32110400, Multipart: false, Headers: , , , > 

  UserMailer.test_email 

只需创建一个Mail::Message对象。 要实际发送您需要做的电子邮件

  UserMailer.test_email.deliver 

(或从rails 4.2 deliver_now / deliver_later

关于记录错误:

刚想通过修补一个爆炸方法对应物来传递,这引发了exception。 检查您是否拼写错误的用户名或密码,或者您只是有一些配置错误的设置可能非常有用。

UserMailer.test_email.deliver!

Rails 4.2的更新答案是:

 UserMailer.test_email.deliver_now! 

如果有任何错误,感叹标记是引发exception。

如果您怀疑这是您的设置,请尝试取出:域名。 它不久前适用于我。( 连接到gmail时,rails 3.1.0.rc5中的Net :: SMTPAuthenticationError )

但是我没有在mailfunction中看到:body选项。 也许这就是问题所在。 尝试从rails控制台发送它,看看会发生什么。 http://api.rubyonrails.org/classes/ActionMailer/Base.html#method-i-mail