Could someone look/try my code below.  It grabs emails
from a mailbox and grabs emails within the BODY of the
email and sends the details to a database to match and
flag an account.

It works fine on 1 email, but if you get multiple
emails in the inbox in will revert to grabbing ONLY
the domain of the mailserver, and do not know why.

To try the code simply.

- Create a PHP file on your webserver, (e.g. pop.php)
- Copy the code below into it
- Change the database usr, pwd and db settings
- user, pass and mailserver settings
- Savie it. :)


- Make sure the mailbox you are setting up in the
script is an EMPTY mailbox.  Please be aware if you
run the script on a full mailbox the script deletes
the emails in the inbox after it is ran so be careful.

- I suggest you create a new mailbox and use that.
- Send an email to the mailbox like this:

Subject: anything

- Feel free to add other text, make sure an email
address is in the Body
- Now run the script on the one email in the inbox, it
will grab and echo the result
- Now send two emails with 2 different email addresses
in the Body
- Runt eh script, it should fail badly and not even
echo the correct address

Why is this?

It's not just the matter of echoing correctly I need
it to to be put into a mysql query correctly also to
flag accounts.  On 1 email it works fine, one more
than 1 it fails mysql.

Could someone take a look and see what I have done
wrong please?

Thanks, Jerry


            $usr = "usr";
            $pwd = "pass";
            $db = "mydb";
            $host = "localhost";

            $cid = mysql_connect($host,$usr,$pwd);

global $IP_RegExp_Match, $Host_RegExp_Match,
$IP_RegExp_Match =
$Host_RegExp_Match = '(' . $IP_RegExp_Match .
$Email_RegExp_Match = '[0-9a-z]([-_.+]?[0-9a-z])*(%' .

$Host_RegExp_Match .
    ')?@' . $Host_RegExp_Match;

$user = 'emailuser';
$pass = 'emailpass';

"{mail.mymailserver.com:110/pop3/notls}"; //Para POP3

$mbox = @imap_open ($MAILSERVER,$user,$pass) or die
("Sorry can't connect - please check your settings");

$check = imap_mailboxmsginfo($mbox);
echo "Messages before delete: " . $check->Nmsgs . "<br

$headers = imap_headers($mbox);

if ($headers == false) {
   echo "There are no messages to be deleted.<br
} else {
   while (list ($key, $val) = each ($headers)) {

   for ($i = 1; $i <= imap_num_msg($mbox); $i++)
   $header = imap_headerinfo($mbox, $i, 80, 80);
   $messageBody = imap_body($mbox, $i);

$messageBody = strip_tags($messageBody,
$messageBody = str_replace("\'", "", $messageBody);
$messageBody = str_replace("\\", "", $messageBody);
$messageBody = str_replace("\"", "", $messageBody);
$messageBody = str_replace("3D", "", $messageBody);

    global $color, $Email_RegExp_Match;
    $sbody     = $messageBody;
    $addresses = array();

    /* Find all the email addresses in the body */
    while(eregi($Email_RegExp_Match, $sbody, $regs)) {
        $addresses[$regs[0]] = $regs[0];
        $start = strpos($sbody, $regs[0]) +
        $sbody = substr($sbody, $start);

    /* Replace each email address with a compose URL
    foreach ($addresses as $email) {
        $body = str_replace($email, $comp_uri, $body);
   mysql_query ("update users SET emailerror='y' WHERE
email='$email'") or die ("No");


imap_delete($mbox, 1);
$check = imap_mailboxmsginfo($mbox);
$check = imap_mailboxmsginfo($mbox);



$check = imap_mailboxmsginfo($mbox);
echo "Messages after delete: " . $check->Nmsgs . "<br

if ($email) {

echo "Email: " . $email . "<br>\n";



http://personals.yahoo.com.au - Yahoo! Personals
New people, new possibilities. FREE for a limited time.

PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to