I m facing the same problem...
if u know the solution, kindly reply me


thanks in advance.
shranu

On Apr 9, 6:04 pm, Siddu <[email protected]> wrote:
> Hi,
>
> My mails were working with the earlier version of rails ie. Rails
> 2.0.2. But recently when i upgraded my environment to 2.3.2 the mails
> stopped working and gave
> "Error: End of file reached".
> But if i send mails independent of my rails app the mailing code works
> fine.
>
> My Environment:
> Windows Xp
> Ruby 1.8.7
> actionmailer (2.3.2)
> actionpack (2.3.2)
> activerecord (2.3.2)
> activeresource (2.3.2)
> activesupport (2.3.2)
> archive-tar-minitar (0.5.2)
> cgi_multipart_eof_fix (2.5.0)
> color (1.4.0)
> dbd-odbc (0.2.4)
> dbi (0.4.0)
> deprecated (2.0.0)
> gem_plugin (0.2.3)
> hoe (1.8.2)
> mongrel (1.1.5)
> pdf-writer (1.1.8)
> rails (2.3.2)
> rake (0.8.4)
> rubyforge (1.0.2)
> transaction-simple (1.4.0)
>
> Here is my test mails code:
> -----------------------------------------------------
> sample_mail.rb ->
>
> class SampleMail
>   require 'send_email'
>   def sample_mail()
>     to_addr = '[email protected]'
>     subject = 'Mail Testing'
>     body = 'This is a mail to test the mails.'
>     hsh={:to=> to_addr, :subject=> subject, :body=> body}
>     SendEMail.send_email(hsh)
>   end
> end
>
>  s = SampleMail.new
>  s.sample_mail()
>
> --------------------------------------------
> send_email.rb ->
>
> #!/usr/bin/env ruby
> require 'rubygems'
> gem 'actionmailer'
> require 'action_mailer'
> require 'openssl'
> require 'net/smtp'
>
> module SendEMail
>
> @user_name= '[email protected]'
> @[email protected]'
> @password='password'
>
> def SendEMail.send_email(hsh)
>
> raw_attachments = []
> if hsh.has_key?(:raw_attachment)
>  raw_attachments.push(hsh[:raw_attachment])
> end
>
> mail=TMail::Mail.new
> mail.to=hsh[:to]
> mail.date=Time.now
> mail.fr...@user_name
> mail.subject=hsh[:subject]
>
> main=mail
> main=TMail::Mail.new
> main.body = hsh[:body]
> puts main.body
> main.set_content_type('text/plain', nil, 'charset'=>'utf-8')
> mail.parts.push(main)
>
> for raw_attachment in raw_attachments
>  part = TMail::Mail.new
>  transfer_encoding=raw_attachment[:transfer_encoding]
>  body=raw_attachment[:body]
>  case (transfer_encoding || "").downcase
>    when "base64" then
>      part.body = TMail::Base64.folding_encode(body)
>    when "quoted-printable"
>      part.body = [body].pack("M*")
>    else
>      part.body = body
>  end
>
>  part.transfer_encoding = transfer_encoding
>  part.set_content_type(raw_attachment[:mime_type], nil, 'name' =>
> raw_attachment[:filename])
>  part.set_content_disposition("attachment", "filename"=>raw_attachment
> [:filename])
>  mail.parts.push(part)
> end
>
> mail.set_content_type('multipart', 'mixed')
> ActionMailer::Base.deliver(mail)
>
> end
>
> ActionMailer::Base.smtp_settings = {
> :address => 'smtp.gmail.com',
> :domain => @domain,
> :authentication => :plain,
> :port => 587,
> :user_name => @user_name,
> :password => @password
>
> }
>
> Net::SMTP.class_eval do
> private
> def do_start(helodomain, user, secret, authtype)
>  raise IOError, 'SMTP session already started' if @started
>  #check_auth_args user, secret, authtype if user or secret
>  check_auth_args user, authtype if user or secret
>  sock = timeout(@open_timeout) { TCPSocket.open(@address, @port) }
> �...@socket = Net::InternetMessageIO.new(sock)
> �[email protected]_timeout = 60 #...@read_timeout
> �[email protected]_output = STDERR #...@debug_output
>
>  check_response(critical { recv_response() })
>  do_helo(helodomain)
>
>  raise 'openssl library not installed' unless defined?(OpenSSL)
>  starttls
>  ssl = OpenSSL::SSL::SSLSocket.new(sock)
>  ssl.sync_close = true
>  ssl.connect
> �...@socket = Net::InternetMessageIO.new(ssl)
> �[email protected]_timeout = 60 #...@read_timeout
> �[email protected]_output = STDERR #...@debug_output
>  do_helo(helodomain)
>
>  authenticate user, secret, authtype if user
> �...@started = true
> ensure
>  unless @started
>    # authentication failed, cancel connection.
>     �[email protected] if not @started and @socket and not @socket.closed?
>   �...@socket = nil
>  end
> end
>
> def do_helo(helodomain)
>   begin
>    if @esmtp
>      ehlo helodomain
>    else
>      helo helodomain
>    end
>  rescue Net::ProtocolError
>    if @esmtp
>     �...@esmtp = false
>     �...@error_occured = false
>      retry
>    end
>    raise
>  end
> end
>
> def starttls
>  getok('STARTTLS')
> end
>
> def quit
>  begin
>    getok('QUIT')
>  rescue EOFError, OpenSSL::SSL::SSLError
>  end
> end
> end
> end
>
> ------------------------------------------------------
> This code works if not included with my rails app and run through
> command prompt.
> If this code is integrated in rails app it gives me "Error: End of
> file reached "
>
> If anyone has any idea please help.................

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Core" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-core?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to