3

Rails アプリで電子メール アクションをセットアップしようとしていますが、メール機能をローカルでテストしたいと考えています。この Railscastに従いましたが、メールTimeout::Error(execution expired)を送信しようとするとエラーが発生します。

config/environments/development.rb

  config.action_mailer.delivery_method = :smtp
  config.action_mailer.perform_deliveries = true
  config.action_mailer.raise_delivery_errors = true

config/initializers/setup_mail.rb

ActionMailer::Base.smtp_settings = {
  :address              => 'smtp.gmail.com',
  :port                 => 587,
  :domain               => 'recipes.dev',
  :user_name            => 'myemail@gmail.com',
  :password             => '*******',
  :authentication       => 'plain',
  :enable_starttls_auto => true
}

mailers/user_mailer.rb

class UserMailer < ActionMailer::Base
  default from: "myemail@gmail.com"

  def test_email(user)
    @email = user.email
    @name = user.name
    mail(:to => @email, :subject => 'test e-mail')
  end
end

コントローラー/users_controller.rb

UserMailer.test_email(@user).deliver

どんな助けでも大歓迎です。

4

1 に答える 1

0

smpt_setting 側の development.rb を次のように配置してみてください。

config.action_mailer.smtp_settings = {
  :address              => 'smtp.gmail.com',
  :port                 => 587,
  :domain               => 'recipes.dev',
  :user_name            => 'myemail@gmail.com',
  :password             => '*******',
  :authentication       => 'plain',
  :enable_starttls_auto => true
}

setup_mail.rb は必要ありません

http://guides.rubyonrails.org/action_mailer_basics.html#example-action-mailer-configurationをご覧ください

于 2013-07-31T17:25:40.597 に答える