我在控制器中的此代码上收到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中的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'
也许我错过了一些非常愚蠢的东西,但如果有人能够回答这个问题,那就太棒了。另外,我的修复是什么?
答案 0 :(得分:15)
如果SMTP服务器关闭,也会发生这种情况。 (我使用名为Sendgrid的第三方邮件程序,当它完全关闭时发生了一次)
答案 1 :(得分:9)
如果您使用“ZOHO”发送电子邮件,
我遇到问题的原因之一是。
答案 2 :(得分:3)
好的,谢谢你们,我实际上在UserMailer中有错误的代码。我在from行中的实际代码有一个&lt;&gt;包含一个电子邮件地址,并在外面有发件人姓名。虽然这已经在我使用/工作的一些私人电子邮件服务器上有效,但它不适用于 Hostmonster 。 Soo,对于将来最终使用Hostmonster的任何人来说,保持邮件配置的一切都很简单(消息可能很复杂,但SMTP配置需要简单)。感谢。
答案 3 :(得分:1)
您是否需要对邮件服务器进行身份验证?
:authentication =&gt; :普通(如果是这样), :enable_starttls_auto =&gt;真
答案 4 :(得分:0)
这是您的SMTP问题。
邮件程序通过SMTP连接到他,无法正确关闭套接字。