Ruby mailer viene con un EOFError


Estoy recibiendo un EOFError (Error de Fin de archivo) en este código en mi controlador. El bloque donde aparece el error está al final de la línea que dice UserMailer.deliver_message( No sé cómo solucionar esto, he estado atascado durante aproximadamente 2 meses y se sugirió este sitio. Por favor, ayuda.

  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

Aquí está el archivo de mensajes:

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

  Message: <%= @message.body %>

  From: <%= @message.email %>

Y aquí está el UserMailer

class UserMailer < ActionMailer::Base

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

Bien aquí está el error que obtengo


EOFError en PedalsController # contact

Fin del archivo alcanzado


Y aquí está la aplicación trace


/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'

Tal vez me estoy perdiendo algo realmente estúpido, pero si alguien puede responder a esto, eso sería increíble. Además, ¿cuál es mi dosis?

Author: Deadder, 2010-06-14

5 answers

Esto también puede ocurrir si el servidor SMTP está inactivo. (Uso un anuncio publicitario de 3rd party llamado Sendgrid y esto sucedió una vez cuando se cae por completo)

 15
Author: lulalala,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-04-11 08:02:51

Si está utilizando "ZOHO" para enviar correo electrónico,

Una de las razones por las que tuve un problema con esto fue.

  1. Debe usar un valor from válido. En mi caso, he utilizado una cuenta de correo electrónico no existente default from: "[email protected]" por lo tanto, zoho server no permite que se envíe el correo electrónico, lo que causa un error EOF.
  2. Debe permitir la configuración de IMAP en ZOHO CONFIGURACIÓN DE IMAP PARA ZOHO
 9
Author: Emil Reña Enriquez,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-11-01 04:24:20

Muy bien, gracias chicos, en realidad tenía código malformado en el UserMailer. El código real que tenía en la línea de tenía un encerrando una dirección de correo electrónico y tenía el nombre del remitente en el exterior. Aunque eso ha funcionado en algunos de los servidores de correo electrónico privados en los que he usado/trabajo, no funciona en Hostmonster. Soo, para cualquier persona que termine usando Hostmonster en el futuro, mantenga todo sobre la configuración de su correo simple (el mensaje puede ser complicado, pero la configuración SMTP necesita para ser simple). Gracias.

 3
Author: Deadder,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-06-24 16:13:03

¿Tiene que autenticarse en el servidor de correo?

: authentication=>: plain (si es así), enable_starttls_auto = > true

 1
Author: Jason Hobbs,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-06-23 12:52:58

Es un problema con su SMTP.

El correo se conecta por SMTP a él y no puede cerrar corretly el socket.

 0
Author: shingara,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-06-16 08:07:36