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.
>
>