Ruby邮件程序正在提出一个EOFError

Dea*_*der 31 ruby smtp sendmail ruby-on-rails actionmailer

我在控制器中的代码上收到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
Run Code Online (Sandbox Code Playgroud)

这是消息文件:

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

  Message: <%= @message.body %>

  From: <%= @message.email %>
Run Code Online (Sandbox Code Playgroud)

这是UserMailer

class UserMailer < ActionMailer::Base

  def message(mail)
    subject    'Feedback/Questions'
    recipients 'Email@email'
    from       'webmaster'
    body        mail
  end
end
Run Code Online (Sandbox Code Playgroud)

好吧,这是我得到的错误


PedalsController中的EOFError #contact

到达文件的末尾


这是应用程序跟踪


/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'
Run Code Online (Sandbox Code Playgroud)

也许我错过了一些非常愚蠢的东西,但如果有人能够回答这个问题,那就太棒了.另外,我的修复是什么?

lul*_*ala 15

如果SMTP服务器关闭,也会发生这种情况.(我使用名为Sendgrid的第三方邮件程序,当它完全关闭时发生了一次)


Emi*_*uez 10

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

我遇到问题的原因之一是.

  1. 您应该使用有效值from.在我的情况下,我使用了一个不存在的电子邮件帐户, default from: "info@luxelectrical.net.au" 因此zoho服务器不允许发送导致EOF错误的电子邮件.
  2. 您应该在ZOHO上允许IMAP设置 为ZOHO设置IMAP


Dea*_*der 3

好吧,谢谢你们,我的 UserMailer 中确实有格式错误的代码。我在 from 行中的实际代码有一个包含电子邮件地址的 <> ,并且在外面有发件人姓名。尽管这在我使用/工作过的一些私人电子邮件服务器上有效,但它在Hostmonster上不起作用。Soo,对于将来最终使用 Hostmonster 的任何人,请保持有关邮件程序配置的所有内容简单(消息可以很复杂,但 SMTP 配置需要简单)。谢谢。