2010-06-14 7 views
29

Ich bekomme einen EOFError (Ende der Datei Fehler) auf diesen Code in meinem Controller. Der Block, in dem der Fehler angezeigt wird, befindet sich am Ende der Zeile mit der Nummer UserMailer.deliver_message(. Ich weiß nicht, wie ich das beheben kann. Ich bin seit ungefähr 2 Monaten festgefahren und diese Seite wurde vorgeschlagen. Bitte helfen Sie. HierRuby Mailer kommt mit einem 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 

ist die Nachrichtendatei:

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

    Message: <%= @message.body %> 

    From: <%= @message.email %> 

Und hier ist der UserMailer

class UserMailer < ActionMailer::Base 

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

Okay hier ist der Fehler, den ich


EOFError in PedalsController # bekommen Kontakt

Ende der Datei erreicht


und hier ist die Anwendung Spur


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

Vielleicht etwas wirklich dumm mir fehlt, aber wenn jemand diese Frage beantworten kann, dass das wäre großartig. Was ist mein Problem?

+1

Bearbeiten Sie Ihre Frage schließen Sie den Code aus Ihrem 'Message' Modell und' UserMailer' ermöglichen. –

+1

Scheint so, als hätte der Mailer Probleme mit Ihrer E-Mail-Zustellung. Können Sie den vollständigen Fehler einschließlich Stack-Trace und Ihrer E-Mail-Konfiguration posten? – molf

Antwort

3

Alles klar, danke Jungs, ich hatte tatsächlich fehlerhaften Code in dem UserMailer. Der tatsächliche Code, den ich in der Von-Zeile hatte, hatte eine <> eine E-Mail-Adresse und hatte den Absender-Namen auf der Außenseite. Obwohl dies auf einigen der privaten E-Mail-Server funktioniert hat, die ich verwendet/bearbeitet habe, funktioniert es nicht auf Hostmonster. Soo, für alle, die in Zukunft mit Hostmonster arbeiten, halten Sie alles über Ihre Mailer Konfiguration einfach (die Nachricht kann kompliziert sein, aber die SMTP Config muss einfach sein). Vielen Dank.

+0

Hallo, könntest du klären was du mit "einfach" meinst? – jaycode

+0

Hey @jaycode von "simple" Ich meine, behalten Sie die SMTP-Konfiguration im Klartext, fügen Sie keinen zusätzlichen Code oder Parameter hinzu. – Deadder

0

Es ist ein Problem mit Ihrem SMTP.

Der Mailer verbindet sich per SMTP mit ihm und kann den Socket nicht korrekt schließen.

+0

Können Sie das klären? – Deadder

+0

hängt von Ihrer Konfiguration ab. Sie verwenden sendmail oder eine SMTP-Verbindung dafür? – shingara

+0

SMTP wird verwendet, ich habe andere Möglichkeiten zum Senden versucht und es funktioniert nicht. – Deadder

1

Müssen Sie sich beim Mailserver authentifizieren?

: authentication =>: plain (wenn ja), : enable_starttls_auto => true

15

Dies kann auch passieren, wenn der SMTP-Server ausgefallen ist. (Ich benutze ein 3rd-Party-Mailer namens Sendgrid und dies einmal geschehen, wenn es ganz untergeht)

+1

Genau die gleiche Situation für uns. Würde mir die Haare zerreißen – Michael

+0

Angabe des falschen Ports wird auch dazu führen, dass dies passiert –

9

Wenn Sie mit „ZOHO“ E-Mail senden,

einer der Gründe, hatte ich ein Problem mit dieser war.

  1. Sie sollten einen gültigen from Wert verwenden. In meinem Fall habe ich ein nicht existierendes E-Mail-Konto default from: "[email protected]" daher Zoho Server erlaubt nicht die E-Mail gesendet werden, die EOF-Fehler verursacht.
  2. Sie sollten IMAP-Einstellungen auf ZOHO IMAP SETTING FOR ZOHO
+0

Spezifischer für "gültig von Wert" - es muss eine von-Adresse von dem Konto mit dem Benutzer verbunden sein/Pass, den Sie verwenden, um zu senden über Zoho. Eine andere Zoho-Adresse, selbst wenn Sie dieselbe Domain verwenden, die unterschiedliche Login-Anmeldeinformationen hat, erhalten Sie immer noch den verrückten EOF-Fehler (was keinen Sinn ergibt). – JosephK

Verwandte Themen