WWW::Postini - Interact with the Postini mail filtering service


WWW-Postini documentation  | view source Contained in the WWW-Postini distribution.

Index


NAME

Top

WWW::Postini - Interact with the Postini mail filtering service

SYNOPSIS

Top

  use WWW::Postini;

  my $p = new WWW::Postini();
  $p->login($login, $password);

DESCRIPTION

Top

This module is an attempt to provide a simple interface to the email quarantine functionality offered by the Postini (http://www.postini.com/) mail filtering service. Behind the scenes, this is achieved by screen-scraping the Postini administration web site.

A NOTE ON EXCEPTIONS

Top

Please note WWW::Postini makes extensive use of Exception::Class objects for improved error handling. Many object methods will throw (read: die()) upon error with a subclass of Exception::Class.

In order to properly handle such errors, it is important to enclose any calls to this module in an eval{} block.

  # try

  eval {

    my $p = new WWW::Postini();
    $p->login($email, $password);

  };

  # catch

  if ($@) {

    if (UNIVERSAL::isa($@, 'Exception::Class')) {

      printf "Caught an exception: %s\n", $@->as_string;

    } else {

      printf "Caught a native error: %s\n", $@;

    }

    exit;  

  }

For more information, please see Exception::Class. Wherever appropriate, this document will detail which subclasses of Exception::Class may be thrown from each method.

CONSTRUCTOR

Top

new()
new($host)

Creates a new instance of WWW::Postini. If $host is specified, it is used as the object's login host, otherwise the default of login.postini.com is used.

  my $p = new WWW::Postini('login2.postini.com');

OBJECT METHODS

Top

user_agent()
user_agent($ua)

Get or set the underlying WWW::Postini::UserAgent object

This method is present in case WWW::Postini needs to be subclassed or the programmer needs access to the user agent itself for other reasons.

  my $user_agent = $p->user_agent();

login_host()
login_host($host)

Get or set login host.

The login host defaults to login.postini.com, unless a host is specified in the constructor. Changing the login host is not necessary at this point, as there is currently only one Postini login server.

admin_host()
admin_host($host)

Get or set administration host.

The administration host is determined automatically during the login() procedure. Until a successful login has taken place, the value of admin_host() will be undefined. It is not necessary to manually set the administration host, but you may if desired. In this case, be sure to set admin_host() after login, but before any other other methods are called.

login($email,$password)

Attempt to login to the Postini mail filtering service with the credentials $email and $password

On failure, this method will throw an instance of the class WWW::Postini::Exception::LoginFailure and it is up to the programmer to catch this exception.

get_user_id($email)

Returns the user ID of the supplied $email argument.

On failure, this method will throw an instance of the class WWW::Postini::Exception::UnexpectedResponse.

list_messages($user_id)
list_messages(%args)
list_messages(\%args)

In its single-argument form, this method will retrieve a list of messages quarantined for the specified $user_id.

If this method is passed a list of key/value pairs or a hash reference, the following keys may be used:

user_id - Target user ID

show - Scope of quarantine listing.

For a listing of values this parameter accepts, please see the "Message searching" section of WWW::Postini::Constants. Defaults to SHOW_ALL

sort - Message sort method

For a listing of values this parameter accepts, please see the "Message sorting" section of WWW::Postini::Constants. Defaults to SORT_NONE

recipient - Narrow searcg by recipient address

Only messages containing this text in the recipient field will be included in the resulting message list. Note: this is a partial text match.

sender - Narrow search by sender address

subject - Narrow search by subject

filter - Narrow search by filter description

On success, this method returns an array reference populated with messages. Each message is a hash reference formatted similar to the following:

  {
    sender    => $sender_address,
    recipient => $recipient_address,
    subject   => $subject,
    date      => $date,
    filter    => $filter_description,
    id        => $message_id,
    uid       => $user_id
  }

On failure, this method will throw a WWW::Postini::Exception::UnexpectedResponse exception.

  use WWW::Postini::Constants ':show';

  # show only quarantined messages

  my $messages = $p->list_messages(
    user_id => $user_id,
    show    => SHOW_QUARANTINED    
  );

  print "Received the following messages\n\n";

  foreach my $msg (@$messages) {

    print "Message ID: $msg->{'id'}\n";

  }

get_message_info($user_id,$message_id)

Retrieve detailed information about the message $message_id belonging to $user_id.

On sucess, a hash reference of the following format will be returned:

  {
    headers     => $header_text,
    body        => $body_text,
    attachments => [ $file1_name, $file2_name, ... ]  
  }

Note: the text returned may be truncated by Postini itself. In addition, attachments will only contain filenames when the current message was blocked due to a disallowed file attachment type.

On failure, this method will throw a WWW::Postini::Exception::UnexpectedResponse exception.

delete_messages($user_id,@messages)
delete_messages($user_id,\@messages)

The specified @messages for $user_id will be marked as deleted.

On success, returns the number of messages successfully deleted.

On failure, this method will throw a WWW::Postini::Exception::UnexpectedResponse exception.

process_messages(%args)
process_messages(\%args)

Process one or more messages. The following parameters are recognized:

user_id - $user_id

recipient - $recipient_value

Specifies where to deliver message. For appropriate values, please see the "Message recipient" section of WWW::Postini::Constants. Defaults to RECIPIENT_USER

mark - 0 or 1

Mark message as delivered. Defaults to 1

clean - 0 or 1

Virus clean before delivering message. Defaults to 1

On success, this method returns the number of messages processed.

On failure, this method will throw a WWW::Postini::Exception::UnexpectedResponse exception.

SEE ALSO

Top

WWW::Postini::Base, WWW::Postini::Constants

AUTHOR

Top

Peter Guzis, <pguzis@cpan.org>

COPYRIGHT AND LICENSE

Top


WWW-Postini documentation  | view source Contained in the WWW-Postini distribution.