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
Great, that is working, what now? How to receive the e-mail? How to write e-mail parser? Continue please, great post!
Fantastic Post. I have read many posts on this subject and you done the best job. Keep it up!
You can not believe just how long ive been googling because of this. Through seven pages of Digg results with out finding anything. 1 search on Msn. There this is… Gotta start using this more often ebrantley@kc.rr.com