Hi Josh, I can't see your message. Could you please send it again? Thanks, Jen. On 26/09/10 18:48, Josh Cheek wrote: > On Sun, Sep 26, 2010 at 3:09 AM, Jen<fluffy_bunny_1988 / hotmail.co.uk>wrote: > > >> Hi, >> >> I found the 'hotmailer' gem, but when I try to use it I get an error saying >> the "login" method is unknown. I've looked at the gem code and it looks like >> I'm calling the correct method. Can someone please tell me what I'm doing >> wrong :( >> >> Here is the code I used to test the gem: >> >> require "rubygems" >> require "hotmailer" >> #create object and login >> jen = Hotmailer.new("my_email_address / hotmail.co.uk","my_password") >> puts jen.inspect >> jen.login() >> >> Here is the error I receive: >> >> /var/lib/gems/1.8/gems/hotmailer-1.0.1/lib/hotmailer.rb:24:in `login': >> undefined method `login=' for nil:NilClass (NoMethodError) >> from hotmailertest.rb:6 >> >> The README for the hotmailer gem is located here: >> >> http://rubydoc.info/gems/hotmailer/1.0.1/frames >> >> Thanks in advance for any suggestions, >> Jen. >> >> >> On 08/09/10 18:47, Alex Stahl wrote: >> >> >>> Hi Jen - Not too long ago I was involved w/ some code to do exactly this >>> - connect to hotmail. Can't say that I know the solution that my >>> colleague developed before he left, but I do know that hotmail uses a >>> fair amount of ajax (or whatever M$ calls it). That implies that it's >>> not as simple as sending an http request - there's some processing on >>> the login page that needs to happen first. >>> >>> My next step in inheriting the work is to try to figure out how to parse >>> the javascript from ruby to send the proper request. Looking at either >>> the harmony or rkelly gems to do so. They might be suitable for what >>> you're trying as well. >>> >>> -Alex >>> >>> On Tue, 2010-09-07 at 23:46 -0500, Jen wrote: >>> >>> >>> >>>> Hello, >>>> >>>> I have only just started seariously playing with Ruby. >>>> I have a script that needs to e-mail data it has gathered to a specific >>>> address. I want to use my hotmail account to send out the e-mail until I >>>> sort my own mail server, but can't connect using pony. >>>> >>>> my code is: >>>> >>>> Pony.mail(:to => "Myaddress / hotmail.co.uk", :from => >>>> "Myaddress / hotmail.co.uk", :via => :smtp, >>>> :smtp => {:host => "smtp.live.com", :port => "25", :tls => true, >>>> :user >>>> => "fMyUserName", >>>> :password => "MyPassword", :auth => :plain, >>>> #:login, :cram_md5, >>>> :domain => "localhost:chicken"}, :subject => "Optelec tweets", :body => >>>> "This is a test") >>>> >>>> I am trying to send the email to myself to check if I can receive it. >>>> Does it matter that the 'from' and 'to' addresses are the same. >>>> When I run this (with the correct username and password) the connection >>>> times out. >>>> Uncommenting the commented line above gives errors when running, and I >>>> think this line is actually gmail specific. >>>> >>>> If there is a better way of doing this please let me know. >>>> >>>> Regards, >>>> Jen. >>>> >>>> >>>> >>> >>> >>> >>> >>> >>> >> >> >> > Honestly, I don't think this hotmailer gem is going to work. Its last > release was December 2006. It also requires Mechanize, and Mechanize has > changed quite a bit since then. If you knew what version of mechanize it > wanted, you could download the correct version, but it doesn't say, and I > can see that some of its use is not correct any more. For example, the class > is declared as "class Hotmailer< WWW::Mechanize" but using the WWW > namespace is deprecated. > > > Its initialize method is: > > def initialize(username,passwd) > super() > self.user_agent_alias = "Windows IE 6" > @username = username > @passwd = passwd > @inbox = '' > @contacts = [] > @messages = [] > end > > > I don't know if setting it to "Windows IE 6" is a problem or not, but it > seems quite improbable that you are using IE 6. > > Here is where the problem you are running into is coming from: > > > def login > #Logs in the user > first_page = self.get('http://hotmail.com') > login_form = first_page.form('f1') > login_form.login = self.username > login_form.passwd = self.passwd > ... > > You see it gets the page at hotmail.com. Then it tries to fill out the form > 'f1'. Looking at the hotmail page, it appears the form is still named 'f1', > but this method is returning nil (which is why login_form.login raises a no > method error -- because nil does not have a login method). I expect that > this returns nil because you aren't using the same version of Mechanize as > this was written with. > > Here are the versions of mechanize > http://rubygems.org/gems/mechanize/versions You might scroll down to find > the ones that were released prior to Dec 2006 (when the hotmailer gem was > released). Then you can start installing old versions (gem install -v > 0.6.3), and in the hotmailer gem, where it requires mechanize, tell it which > one you want to use. > > I'm not really sure how to tell it which one you want, I think you just > replace (require 'mechanize') with (gem 'mechanize', '=0.6.3') > > Anyway, if that still doesn't work, theres only about 250 lines of code in > that gem, you can possibly sit down with for a while and get it fixed. Or, > find a gem that works better. This one manually logs into the site using its > web interface. This is a fun idea, but will break any time hotmail changes > anything your gem relies on. There are a number of gems related to sending > email, and I know Rails just got a new one for Rails 3, probably your best > bet will be to check one of them out. > >