Ruby mailer is coming up with an EOFError

15,427

Solution 1

Alright, thank you guys, I actually had malformed code in the UserMailer. The actual code I had in the from line had a <> encasing an email address and had the senders name on the outside. Though that has worked on some of the private email servers I have used/work on, it does not work on Hostmonster. Soo, for anyone that ends up using Hostmonster in the future, keep everything about your mailers configuration simple (the message can be complicated but the SMTP Config needs to be simple). Thanks.

Solution 2

This can also happen if the SMTP server is down. (I use a 3rd party mailer called Sendgrid and this happened once when it goes down entirely)

Solution 3

If you are using "ZOHO" to send email,

one of the reason I had a problem with this was.

  1. You should use a valid from value. In my case, I used a non existing email account default from: "[email protected]" hence zoho server is not allowing the email to be sent which causes EOF Error.
  2. You should allow IMAP settings on ZOHO IMAP SETTING FOR ZOHO

Solution 4

Do you have to authenticate to the mail server?

:authentication => :plain (if so), :enable_starttls_auto => true

Share:
15,427
Deadder
Author by

Deadder

Updated on June 02, 2022

Comments

  • Deadder
    Deadder almost 2 years

    I am getting an EOFError (End Of File Error) on this code in my controller. The block where the error appears is at the end of the line that says UserMailer.deliver_message( I am unaware as to how to fix this, I have been stuck for about 2 months and this site was suggested. Please help.

      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
    

    Here is the message file:

    <%= @message.name %> has sent feedback or a question:
    
      Message: <%= @message.body %>
    
      From: <%= @message.email %>
    

    And here is the UserMailer

    class UserMailer < ActionMailer::Base
    
      def message(mail)
        subject    'Feedback/Questions'
        recipients 'Email@email'
        from       'webmaster'
        body        mail
      end
    end
    

    Alright here is the error I get


    EOFError in PedalsController#contact

    end of file reached


    and here is the application 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'
    

    Maybe I am missing something really stupid, but if someone can answer this, that would be amazing. Also, what is my fix?