Mail::SpamAssassin::Client(3)

NAME
Mail::SpamAssassin::Client - Client for spamd Protocol

NOTE: This interface is alpha at best, and almost guaranteed to change

SYNOPSIS
  my $client = new Mail::SpamAssassin::Client({port => 783,
                                               host => 'localhost',
                                               username => 'someuser'});

  if ($client->ping()) {
    print "Ping is ok\n";
  }

  my $result = $client->process($testmsg);

  if ($result->{isspam} eq 'True') {
    do something with spam message here
  }

DESCRIPTION
Mail::SpamAssassin::Client is a module that provides a perl implementation for the spamd protocol.

PUBLIC METHODS

  new
public class (Mail::SpamAssassin::Client) new (\% $args)

Description: This method creates a new Mail::SpamAssassin::Client object.

  process
public instance (\%) process (String $msg, Boolean $is_check_p)

Description: This method makes a call to the spamd server and depending on the value of $is_check_p either calls PROCESS or CHECK.

The return value is a hash reference containing several pieces of information, if available:

content_length

isspam

score

threshold

message

  check
public instance (\%) check (String $msg)

Description: The method implements the check call.

Since check and process are so similar, we simply pass this call along to the process method with a flag to indicate to actually make the CHECK call.

See the process method for the return value.

  learn
public instance (Boolean) learn (String $msg, Integer $learntype)

Description: This method implements the learn call. $learntype should be an integer, 0 for spam, 1 for ham and 2 for forget. The return value is a boolean indicating if the message was learned or not.

An undef return value indicates that there was an error and you should check the resp_code/resp_msg values to determine what the error was.

  report
public instance (Boolean) report (String $msg)

Description: This method provides the report interface to spamd.

  revoke
public instance (Boolean) revoke (String $msg)

Description: This method provides the revoke interface to spamd.

  ping
public instance (Boolean) ping ()

Description: This method performs a server ping and returns 0 or 1 depending on if the server responded correctly.

PRIVATE METHODS

  _create_connection
private instance (IO::Socket) _create_connection ()

Description: This method sets up a proper IO::Socket connection based on the arguments used when greating the client object.

On failure, it sets an internal error code and returns undef.

  _parse_response_line
private instance (@) _parse_response_line (String $line)

Description: This method parses the initial response line/header from the server and returns its parts.

We have this as a seperate method in case we ever decide to get fancy with the response line.

  _clear_errors
private instance () _clear_errors ()

Description: This method clears out any current errors.