Подтвердить что ты не робот

Рубиновая почта появляется с EOFError

Я получаю EOFError (End Of File Error) этого кода в контроллере. Блок, где появляется ошибка, находится в конце строки, которая говорит 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 protected]'
    from       'webmaster'
    body        mail
  end
end

Хорошо, вот ошибка, которую я получаю


EOFError в PedalsController # 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'

Возможно, мне не хватает чего-то действительно глупого, но если кто-то может ответить на этот вопрос, это будет потрясающе. Кроме того, каково мое исправление?

4b9b3361

Ответ 1

Хорошо, спасибо, ребята, у меня на самом деле был неправильный код в UserMailer. Фактический код, который у меня был на линии, имел < > encasing адрес электронной почты и имел имя отправителя снаружи. Хотя это работало на некоторых частных почтовых серверах, на которых я работал/работал, он не работает на Hostmonster. Soo, для всех, кто в конечном итоге использует Hostmonster, все упрощает настройку вашей почтовой программы (сообщение может быть сложным, но SMTP Config должен быть простым). Спасибо.

Ответ 2

Это также может случиться, если сервер SMTP не работает. (Я использую стороннюю почтовую программу с именем Sendgrid, и это произошло однажды, когда она полностью прекратилась)

Ответ 3

Если вы используете "ZOHO" для отправки электронной почты,

одна из причин, по которым у меня была проблема с этим.

  • Вы должны использовать действительное значение from. В моем случае я использовал не существующую учетную запись электронной почты default from: "[email protected]" поэтому сервер zoho не позволяет отправлять электронную почту, которая вызывает ошибку EOF.
  • Вы должны разрешить настройки IMAP на ZOHO НАСТРОЙКА IMAP ДЛЯ ZOHO

Ответ 4

Вам нужно пройти аутентификацию на почтовый сервер?

: authentication = > : plain (если это так), : enable_starttls_auto = > true

Ответ 5

Это проблема с вашим SMTP.

Почтовый сервер подключается к SMTP и не может закрыть его.