I would like to describe some methods on how to write the processor for incoming mail. I had to use such manipulation to parse e-mails received from various sources. This can be useful for writing your own spam filter system, answering machine or ticket system to receive applications by e-mail.
To implement the e-mail parser algorithm we need
- connect and log-on to e-mail server
- count the number of incoming letters
- recive e-mail from the server using POP3 protocol
- process the e-mail headers and body and make parsing
- … implement any additional actions
Ok, there is very specific task for PHP coding, so we need hosting that supports external connection. I do not propose to write decision entirely because much has been realized by talented programmers already. For example, you can take a ready module which will allow accept e-mails from a remote server.
Thank’s to Manuel Lemos and his module (php class) which named pop3.php.
To connect that class to your code, you just need to use include or require command: require(“pop3.php”);
require("pop3.php");
$hostname = 'pop3.mail.com';
$port = '110';
$user = 'pop3-username';
$accesscode = 'pop3-password';
// Create the class connection
$pop3_connection=new pop3_class;
// Specify the hostname
$pop3_connection->hostname=$hostname;
$result=$pop3_connection->Open();
// We are trying to open connection and display the result
echo $result;
// Trying to logon and display the error if any appear
$error=$pop3_connection->Login($user,$accesscode,$apop);
if ($error<>'Password error: Logon failure: unknown user name or bad password.') {echo $error; exit;}
// Now get the statistic how many emails are stored and the size of them $result=$pop3_connection->Statistics($messages, $size);
echo "$hostname contains $messages of $size bytes.";
//..... There we can receive e-mails in the cycle and parse them.... //
// If nothing to do - we can close the connection
$error=$pop3_connection->Close(); //
echo $error;
?>
Now we know how to connect and log-on to the POP3 server and how to request the number of Inbox e-mails and them sizes. Next, we should receive each e-mail and parse the headers and body array.
TO BE CONTINUED