Revision: 57102
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at May 16, 2012 12:40 by squadsupply
Initial Code
// include class
include("Net/POP3.php");
// initialize object
$pop3 = new Net_POP3();
// attempt connection to server
if (!$pop3->connect("mail.yourserver.com", 110)) {
die("Error in connection");
}
// attempt login
$ret = $pop3->login($email_login, $email_password);
if (is_a($ret, 'PEAR_Error')) {
die("Error in authentication: " . $ret->getMessage());
}
// print number of messages found
echo $pop3->numMsg() . " message(s) in mailbox\n";
// print message headers
if ($pop3->numMsg() > 0) {
for ($x=1; $x<=$pop3->numMsg(); $x++) {
// for ($x=1; $x<=10; $x++) {
$hdrs = $pop3->getParsedHeaders($x);
if
(
preg_match( '/MAILER-DAEMON/i', $hdrs['From'] ) || preg_match( '/Mail Administrator/i', $hdrs['From'] )
||
preg_match( '/Returned mail/i', $hdrs['Subject'] ) || preg_match( '/User Unknown/i', $hdrs['Subject'] )
)
{
// extract the email address from the body
$mail_body = $pop3->getBody($x);
$pattern = '/[A-Za-z0-9_-]+@[A-Za-z0-9_-]+\.([A-Za-z0-9_-][A-Za-z0-9_]+)/'; //regex for pattern of e-mail address
preg_match($pattern, $mail_body, $matches); //find matching pattern
$undeliverable_email = $matches[0];
echo "<b>Remove " . $undeliverable_email . "</b><br/><br/>";
// add to database table 'bad_emails' to prevent future mailings to this address
if( mysql_query("INSERT INTO `bad_emails` (`email`) VALUES ('$undeliverable_email');") ) {
}
// delete the message
$pop3->deleteMsg($x);
}
}
}
// disconnect from server
$pop3->disconnect();
Initial URL
http://www.squadsupply.com/
Initial Description
You can set this as a cron to automatically clean up unsubscribes after sending out a mass email.
Initial Title
PHP Pear Remove Undeliverable Emails from POP3 Account
Initial Tags
php, mail
Initial Language
PHP