2010-06-14 6 views
29

Estoy obteniendo un EOFError (End Of File Error) en este código en mi controlador. El bloque donde aparece el error se encuentra al final de la línea que dice UserMailer.deliver_message(. No estoy al tanto de cómo solucionarlo. Estuve estancado durante aproximadamente 2 meses y se sugirió este sitio. Por favor ayuda.El correo de Ruby presenta un EOFError

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í es el UserMailer

class UserMailer < ActionMailer::Base 

    def message(mail) 
    subject 'Feedback/Questions' 
    recipients '[email protected]' 
    from  'webmaster' 
    body  mail 
    end 
end 

bien aquí es el error que consigo


EOFError en PedalsController # contacto

final del archivo alcanza


y aquí está la traza aplicación


/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, que sería increíble. Además, ¿cuál es mi solución?

+1

Por favor, edite su pregunta para incluir el código de su modelo '' message' y su UserMailer'. –

+1

Parece que el programa de correo tiene problemas con la entrega de su correo electrónico. ¿Puedes publicar el error completo, incluido el seguimiento de pila y la configuración de tu correo electrónico? – molf

Respuesta

3

Muy bien, gracias chicos, en realidad tenía código de formato incorrecto en el UserMailer. El código real que tenía en la línea de origen tenía un <> que contenía una dirección de correo electrónico y tenía el nombre de los remitentes en el exterior. Aunque eso ha funcionado en algunos de los servidores de correo electrónico privados que he usado/trabajado, no funciona en Hostmonster. Soo, para cualquiera que termine usando Hostmonster en el futuro, mantenga todo sobre la configuración de su correo publicitario simple (el mensaje puede ser complicado pero la configuración de SMTP debe ser simple). Gracias.

+0

Hola, ¿podría aclarar qué quiere decir con "simple"? – jaycode

+0

Hola @jaycode por "simple" Quiero decir, mantenga la configuración de SMTP en texto sin formato, no agregue ningún código o parámetro adicional. – Deadder

0

Es un problema con su SMTP.

El programa de correo electrónico se conecta por SMTP a él y no puede cerrar correccionamente el zócalo.

+0

¿Puedes aclarar eso? – Deadder

+0

depende de su configuración. ¿Usas sendmail o una conexión SMTP para eso? – shingara

+0

SMTP se utiliza, he intentado otras formas de envío y no funciona. – Deadder

1

¿Tiene que autenticarse en el servidor de correo?

: autenticación =>: llana (si es así), : enable_starttls_auto => true

15

Esto también puede ocurrir si el servidor SMTP está inactivo. (Yo uso una tercera anuncio publicitario parte llamada SendGrid y esto ocurrió una vez cuando baja su totalidad)

+1

La misma situación exacta para nosotros. Me hubiera estado arrancando los pelos – Michael

+0

Especificar el puerto incorrecto también resultará en que esto ocurra –

9

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

una de las razones que tenía un problema con esta era.

  1. Debe utilizar un valor from válido. En mi caso, utilicé una cuenta de correo electrónico no existente default from: "[email protected]" , por lo tanto, el servidor zoho no permite que se envíe el correo electrónico, lo que causa un error EOF.
  2. usted debe permitir la configuración de IMAP del zoho IMAP SETTING FOR ZOHO
+0

Más específico para "válido desde el valor" - necesita ser una dirección alternativa de la cuenta conectada al usuario/pase que está utilizando para enviar a través de Zoho. Una dirección Zoho diferente, incluso utilizando su mismo dominio, que tiene diferentes credenciales de inicio de sesión, todavía obtiene el error EOF loco (que no tiene sentido). – JosephK

Cuestiones relacionadas