Rails 3 ActionMailer Google Apps: время ожидания :: ошибка - PullRequest
0 голосов
/ 31 марта 2011

Я пытался исправить это слишком много часов.Я посмотрел на Railscast, официальные руководства по Rails, множество постов в блоге, и ни одна из них не помогла.

Я пытаюсь отправить электронное письмо из приложения Rails 3 с помощью ActionMailer 2.2.5 через мой аккаунт Google Apps.Я проверил имя пользователя и пароль.Я вижу на консоли сообщение для отправки.Я получаю Тайм-аут :: Ошибка от доставить вызов в моем контроллере.

Может кто-нибудь пролить свет на это?

Воткод:

# config/environments/development.rb
config.action_mailer.raise_delivery_errors = true
config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = {
  :enable_starttls_auto => true,
  :tls => true,
  :address => 'smtp.gmail.com',
  :port => "587",
  :authentication => :plain,                                                                                                                     
  :domain => 'test.com',
  :user_name => 'user@test.com',
  :password => 'mypass'
}

# app/mailers/test_mailer.rb
class PostMailer < ActionMailer::Base
  default :from => "no-reply@test.com"

 def activate_email( post )
   @post = post
   mail( :to => post.email,
         :subject => "Testing" )
   end
 end

# app/controllers/test_controller.rb
class TestController < ApplicationController
  def create
    @post = Post.new( params[:post] )
    TestMailer.activate_email( @post ).deliver
  end
end

1 Ответ

2 голосов
/ 31 марта 2011

Я бы попробовал две вещи. Сначала сделайте номер порта вместо строки:

:port => 587

Также в моем коде перед конфигом actionmailer есть следующая строка:

Net::SMTP.enable_tls(OpenSSL::SSL::VERIFY_NONE)

Есть ли причина, по которой вы используете старую версию actionmailer с rails 3? Я бы порекомендовал использовать версию actionmailer, соответствующую вашей версии rails.

Надеюсь, это поможет.

...