【问题标题】:Rails: Net::OpenTimeout in ContatosController#createRails:ContatosController#create 中的 Net::OpenTimeout
【发布时间】:2014-07-31 01:39:43
【问题描述】:

我不知道为什么会出现这个错误Net::OpenTimeout in ContatosController#create。我在 app/controllers/contatos_controller.rb 中有以下代码:

  def create
    @contato = Contato.new(contato_params)

    respond_to do |format|
      if @contato.save
        ContatoMailer.mensagem(@contato).deliver
        format.html { redirect_to contatos_path, notice: 'Obrigado por enviar sua mensagem! Em breve, responderemos.' }
        format.json { render :show, status: :created, location: @contato }
      else
        format.html { render :new }
        format.json { render json: @contato.errors, status: :unprocessable_entity }
      end
    end
  end

在 app/mailers/contato_mailer.rb 中:

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

    def mensagem(contato)
        mail(:to => "myemail@gmail.com", :subject => "Subject")            
    end
end

在 config/initializers/setup_mail.rb:

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

当然还有 app/views/contato_mailer/mensagem.html.erb 中的模板。

当我从表单提交新消息时,Rails 会返回 “execution expired”,重点是 “ContatoMailer.mensagem(@contato).deliver”。 p>

请问,我做错了什么?

【问题讨论】:

    标签: ruby-on-rails ruby ruby-on-rails-4


    【解决方案1】:

    尝试将domain: 键更改为指向'gmail',使其应为:

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

    我认为它正在超时,因为它不知道 domain.com 与您的设置相关。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-05-14
      • 2022-01-14
      • 2014-05-19
      • 2013-07-24
      • 2014-12-10
      • 2010-09-29
      • 2015-02-07
      • 1970-01-01
      相关资源
      最近更新 更多