Hi, would someone please help me. I have been desperatley trying to fnd out for the last two days why the following code is not working. Any ideas. I''m running Instant Rails 1.4 / Rails version 1.2.5 / Ruby version 1.8.5 (i386-mswin32) / RubyGems version 1.1.1 / Action Mailer version 1.3.5 / Windows XP. Here is a description of my emailing application: in app/views/emailer/correspond.rhtml: <h2>Request A Call Back</h2> <p>Email a request to receive a Call Back from XYZ:</p> <% form_tag :action => ''sendmail'' do -%> <p>First Name:<br /><%= text_field ''email'', ''firstname'', :size => 30 %></p> <p>Surname:<br /><%= text_field ''email'', ''surname'', :size => 30 %></p> <p>Email Address:<br /><%= text_field ''email'', ''email_address'', :size => 30 %></p> <p>Telephone Number:<br /><%= text_field ''email'', ''telephone'', :size => 30 %></p> <p>Message:<br /><%= text_area ''email'', ''message_body'', :rows => 20, :cols => 50 %></p> <%= submit_tag "Send", :class => "submit" %> or <%= link_to ''Cancel'', ''/'' %> <% end -%> in app/controllers/emailer_controller.rb: class EmailerController < ApplicationController def sendmail email = params[:email] recipient = ''abc-gJEnWOaiUB4@public.gmane.org'' subject = ''Request A Call Back'' firstname = email["firstname"] surname = email["surname"] email_address = email["email_address"] telephone = email["telephone"] message_body = email["message_body"] Emailer.deliver_message(recipient, subject, firstname, surname, email_address, telephone, message_body) return if request.xhr? flash[:notice] = "Email Sent Successfully." redirect_to ''/emailer/correspond'' end end in app/models/emailer.rb: class Emailer < ActionMailer::Base def message(recipient, subject, firstname, surname, email_address, telephone, message_body) @subject = subject @recipients = recipient @from = ''no-reply-gJEnWOaiUB4@public.gmane.org'' @body["firstname"] = firstname @body["surname"] = surname @body["email_address"] = email_address @body["telephone"] = telephone @body["message_body"] = message_body end end in app/views/emailer/message.rhtml: Hi XYZ! You are receiving an email message from: First Name: <%= @firstname %> Surname: <%= @surname %> Email address: <%= @email_address %> Telephone Number: <%= @telephone %> Message: <%= @message_body %> requesting a Call Back. in config/environment.rb: require ''smtp_tls'' ActionMailer::Base.delivery_method = :smtp ActionMailer::Base.server_settings = { :address => "smtp.gmail.com", :port => 587, :domain => "def.com", :authentication => :plain, :user_name => "abc-gM/Ye1E23mwN+BqQ9rBEUg@public.gmane.org", :password => "abcdef" } in lib/smtp_tls.rb: require "openssl" require "net/smtp" 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 sock = timeout(@open_timeout) { TCPSocket.open(@address, @port) } @socket = Net::InternetMessageIO.new(sock) @socket.read_timeout = 60 #@read_timeout #@socket.debug_output = STDERR #@debug_output check_response(critical { recv_response() }) do_helo(helodomain) if starttls raise ''openssl library not installed'' unless defined?(OpenSSL) ssl = OpenSSL::SSL::SSLSocket.new(sock) ssl.sync_close = true ssl.connect @socket = Net::InternetMessageIO.new(ssl) @socket.read_timeout = 60 #@read_timeout #@socket.debug_output = STDERR #@debug_output do_helo(helodomain) end authenticate user, secret, authtype if user @started = true ensure unless @started # authentication failed, cancel connection. @socket.close 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'') rescue return false return true end def quit begin getok(''QUIT'') rescue EOFError, OpenSSL::SSL::SSLError end end end I get the following error message: Errno::EBADF in EmailerController#sendmail Bad file descriptor - connect(2) RAILS_ROOT: ./script/../config/.. Application Trace | Framework Trace | Full Trace C:/InstantRails/rails_apps/YOTO/vendor/plugins/action_mailer_tls/lib/ smtp_tls.rb:10:in `initialize'' C:/InstantRails/rails_apps/YOTO/vendor/plugins/action_mailer_tls/lib/ smtp_tls.rb:10:in `open'' C:/InstantRails/rails_apps/YOTO/vendor/plugins/action_mailer_tls/lib/ smtp_tls.rb:10:in `do_start'' C:/InstantRails/ruby/lib/ruby/1.8/timeout.rb:56:in `timeout'' C:/InstantRails/ruby/lib/ruby/1.8/timeout.rb:76:in `timeout'' C:/InstantRails/rails_apps/YOTO/vendor/plugins/action_mailer_tls/lib/ smtp_tls.rb:10:in `do_start'' C:/InstantRails/ruby/lib/ruby/1.8/net/smtp.rb:378:in `start'' C:/InstantRails/ruby/lib/ruby/1.8/net/smtp.rb:316:in `start'' C:/InstantRails/rails_apps/YOTO/vendor/rails/actionmailer/lib/ action_mailer/base.rb:565:in `perform_delivery_smtp'' C:/InstantRails/rails_apps/YOTO/vendor/rails/actionmailer/lib/ action_mailer/base.rb:451:in `send'' C:/InstantRails/rails_apps/YOTO/vendor/rails/actionmailer/lib/ action_mailer/base.rb:451:in `deliver!'' C:/InstantRails/rails_apps/YOTO/vendor/rails/actionmailer/lib/ action_mailer/base.rb:333:in `method_missing'' C:/InstantRails/rails_apps/YOTO/app/controllers/emailer_controller.rb: 12:in `sendmail'' What on earth is happening? I have a working version of this code running on Mac OS X with Rails 2.0.2 (with the obvious changes: rhtml --> html.erb and server_settings --> smtp_settings). Thanks in advance. Regards Walter --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---