32

コントローラのこのコードでEOFError(ファイルの終わりエラー)が発生します。エラーが表示されるブロックは、UserMailer.deliver_message(これを修正する方法がわからないという行の最後にあります。私は約2か月間立ち往生しており、このサイトが提案されました。助けてください。

  def contact
      @title= "Contact Us"
      if request.post?
       @message= Message.new(params[:contact])
        if @message.valid?
           UserMailer.deliver_message(
            :message => @message
            )
          flash[:notice] = "Thank you for contacting us"
          redirect_to contact_url
         end
        end
      end

メッセージファイルは次のとおりです。

<%= @message.name %> has sent feedback or a question:

  Message: <%= @message.body %>

  From: <%= @message.email %>

そしてここにUserMailerがあります

class UserMailer < ActionMailer::Base

  def message(mail)
    subject    'Feedback/Questions'
    recipients 'Email@email'
    from       'webmaster'
    body        mail
  end
end

さて、ここに私が得るエラーがあります


PedalsController#contactのEOFError

ファイルの終わりに達しました


これがアプリケーショントレースです


/usr/lib64/ruby/1.8/net/protocol.rb:135:in `sysread'
/usr/lib64/ruby/1.8/net/protocol.rb:135:in `rbuf_fill'
/usr/lib64/ruby/1.8/timeout.rb:62:in `timeout'
/usr/lib64/ruby/1.8/timeout.rb:93:in `timeout'
/usr/lib64/ruby/1.8/net/protocol.rb:134:in `rbuf_fill'
/usr/lib64/ruby/1.8/net/protocol.rb:116:in `readuntil'
/usr/lib64/ruby/1.8/net/protocol.rb:126:in `readline'
/usr/lib64/ruby/1.8/net/smtp.rb:911:in `recv_response'
/usr/lib64/ruby/1.8/net/smtp.rb:897:in `getok'
/usr/lib64/ruby/1.8/net/smtp.rb:921:in `critical'
/usr/lib64/ruby/1.8/net/smtp.rb:895:in `getok'
/usr/lib64/ruby/1.8/net/smtp.rb:828:in `mailfrom'
/usr/lib64/ruby/1.8/net/smtp.rb:653:in `sendmail'
$HOME/blueflower/vendor/rails/actionmailer/lib/action_mailer/base.rb:684:in `perform_delivery_smtp'
/usr/lib64/ruby/1.8/net/smtp.rb:526:in `start'
$HOME/blueflower/vendor/rails/actionmailer/lib/action_mailer/base.rb:682:in `perform_delivery_smtp'
$HOME/blueflower/vendor/rails/actionmailer/lib/action_mailer/base.rb:523:in `__send__'
$HOME/blueflower/vendor/rails/actionmailer/lib/action_mailer/base.rb:523:in `deliver!'
$HOME/blueflower/vendor/rails/actionmailer/lib/action_mailer/base.rb:395:in `method_missing'
$HOME/blueflower/app/controllers/pedals_controller.rb:36:in `contact'

たぶん私は本当に愚かな何かを見逃しているかもしれませんが、誰かがこれに答えることができれば、それは素晴らしいでしょう。また、私の修正は何ですか?

4

5 に答える 5

17

これは、SMTPサーバーがダウンしている場合にも発生する可能性があります。(私はSendgridと呼ばれるサードパーティのメーラーを使用していますが、これは完全にダウンしたときに一度発生しました)

于 2013-04-11T08:02:51.807 に答える
12

「ZOHO」を使ってメールを送信している場合は、

私がこれに問題を抱えた理由の1つはでした。

  1. 有効なfrom値を使用する必要があります。私の場合、存在しないメールアカウントを使用した default from: "info@luxelectrical.net.au" ため、zohoサーバーがメールの送信を許可していないため、EOFエラーが発生します。
  2. ZOHOでIMAP設定を許可する必要があります ZOHOのIMAP設定
于 2016-11-01T04:24:20.093 に答える
3

了解しました。ありがとうございます。実際、UserMailerに不正な形式のコードが含まれていました。from行にある実際のコードには、電子メールアドレスを含む<>があり、送信者の名前が外側にありました。これは私が使用/作業しているいくつかのプライベートメールサーバーでは機能しましたが、 Hostmonsterでは機能しません。Soo、将来Hostmonsterを使用することになった人のために、メーラー構成に関するすべてを単純にしてください(メッセージは複雑になる可能性がありますが、SMTP構成は単純である必要があります)。ありがとう。

于 2010-06-24T16:13:03.220 に答える
1

メールサーバーに対して認証する必要がありますか?

:authentication =>:plain(もしそうなら)、:enable_starttls_auto => true

于 2010-06-23T12:52:58.387 に答える
0

SMTPに問題があります。

メーラーはSMTPで接続し、ソケットを正しく閉じることができません。

于 2010-06-16T08:07:36.743 に答える