WWW::GMail - Perl extension for accessing Google Mail (gmail)
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 } print "you have $new_msgs new messages in your inbox\n"; my @contacts = $obj->get_contact_list(); print "you have ".(@contacts)." contacts\n"; my $gmail = 0; for my $i ( 0 .. $#contacts ) { $gmail += ($contacts[$i]->[3] =~ m/gmail\.com$/i); } print "$gmail of them are gmail addresses\n"; $obj->logout();
This module simplifies access to gmail.
Currently this module allows retrieval of message lists, raw messages, and the contact list. All requests to gmail are secured using ssl.
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 ref 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
get_contact_list
Returns all contacts in an array of arrayrefs. Contact id is not strictly a number. I have ids such as 11b, be, 1b, d2, 117, 11f
Each array ref has
0 Contact id 1 Name 2 Name or blank (not sure what this is) 3 Email 4 Notes
logout
Logs out the current logged in account.
Nothing. Its all Object Orientated.
LWP::UserAgent, HTTP::Cookies
Contact management, label management, and better docs. Also, what happends when the js_version changes? Enable persistant cookie?
David Davis <xantus@cpan.org>
**Use this module at your own risk, and read your Gmail terms of use**
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.
4 POD Errors
The following errors were encountered while parsing the POD:
=back doesn't take any parameters, but you said =back 4
To install WWW::GMail, copy and paste the appropriate command in to your terminal.
cpanm
cpanm WWW::GMail
CPAN shell
perl -MCPAN -e shell install WWW::GMail
For more information on module installation, please visit the detailed CPAN module installation guide.