NAME WWW::GMail - Perl extension for accessing Google Mail (gmail) SYNOPSIS use WWW::GMail; my $obj = WWW::GMail->new( username => "USERNAME", password => "PASSWORD", cookies => { autosave => 1, file => "./gmail.cookie", }, ); my $ret = $obj->login(); if ($ret == -1) { print "password incorrect\n"; } elsif ($ret == 0) { print "unable to login $obj->{error}\n"; exit; } my @list = $obj->get_message_list('inbox'); # count the new messages in the inbox my $new_msgs = 0; for my $i ( 0 .. $#list ) { $new_msgs += $list[$i]->[1]; # count the unread flags } $obj->logout(); ABSTRACT This module simplifies access to gmail. DESCRIPTION Currently it allows retrieval of message lists, and raw messages. Methods There are currently 5 methods "new" This will setup the object, useragent and cookie jar. The HTTP::Cookies object is stored as $obj->{jar} The LWP::UserAgent object is stored as $obj->{ua} The new method accepts a hash of options: "username" GMail username, stored as $obj->{username} "password" GMail password, stored as $obj->{password} "cookies" A hash ref of options passed to HTTP::Cookies Specify {} to make the session temporary. "agent" * Optional! A useragent string passed to LWP::UserAgent "login" Logs into GMail, DO THIS FIRST, duh... Return values are: 1 login correct 0 some error happend, check $obj->{error} for reason -1 incorrect password and/or username "get_message_list" This method returns an array of arrays Each array has an array of info about the message Currenly, WWW::GMail doesn't strip the html entities, do that yourself for now. A future version will have an option passed to new() to adjust this. The array 0 message id (pass this to get_message_raw) 1 unread = 1,read = 0 2 starred = 1,not = 0 3 date 4 from 5 indicator 6 subj 7 sent 8 labels 9 attachments 10 message id (again?) 11 ? unknown See the SYNOPSIS Also available after calling get_message_list is: Used space $self->{used} Total space $self->{total} Percent used $self->{percent_used} Per page $self->{per_page} List total $self->{list_total} List folder $self->{list_folder} Labels $self->{labels} (an array of arrays) The array 0 label 1 number of new "get_message_raw" Pass it a message id from a message list (see get_message_list) Retrieves the raw message as a scalar, headers and all. Returns undef if there was an error or invalid id Check $obj->{error} for messages "logout" Logs out the current logged in account. EXPORT Nothing. Its all Object Orientated. SEE ALSO LWP::UserAgent, HTTP::Cookies TODO Contact management, label management, and better docs. Also, what happends when the js_version changes? Enable persistant cookie? AUTHOR David Davis NOTICE **Use this module at your own risk, and read your Gmail terms of use** COPYRIGHT AND LICENSE Copyright 2004 by David Davis and Teknikill Software This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.