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 的第 3 方邮件程序,当它完全崩溃时发生过一次)

于 2013-04-11T08:02:51.807 回答
12

如果您使用“ZOHO”发送电子邮件,

我有这个问题的原因之一是。

  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。所以,对于将来最终使用 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 回答