I think Peter is probably right. In the case he is not however, can
you post a print_r of $multiArray.
- Craige
On Fri, May 2, 2008 at 7:24 AM, Peter Ford <[EMAIL PROTECTED]> wrote:
>
> Richard Kurth wrote:
>
> > Way does my for loop not complete the task if there are 4 emails it only
> process 3 emails through the foreach loop if there is 3 it only process 2
> >
> > # Connect up
> > $host ="domain.com";
> > $port ="110";
> > $mailtype = "pop3";
> > $mailbox ="INBOX";
> > $username ="[EMAIL PROTECTED]";
> > $password ="boat1234";
> > $conn = @imap_open("{" . $host . ":" . $port . "/" . $mailtype .
> "/notls}" . $mailbox, $username, $password);
> >
> > $number=imap_num_msg($conn);
> > for($i = 1; $i <= $number; $i++) {
> > $file="C:\web\bouncehandler\eml\em$i";
> > imap_savebody($conn,$file,$i);
> >
> >
> > $file=file_get_contents("C:\web\bouncehandler\eml\em$i");
> > $multiArray = Bouncehandler::get_the_facts($file);
> >
> > $EMAIL = $the['recipient'];
> > foreach($multiArray as $the){
> > switch($the['action']){
> > case 'failed':
> > $sql="UPDATE contacts SET emailstatus = 'Fatal-Bounced' WHERE
> emailaddress = '$EMAIL'";
> > mysql_query($sql) or die("Invalid query: " . mysql_error());
> break;
> > case 'transient':
> > $sql="UPDATE contacts SET emailstatus = 'Bounced' WHERE emailaddress
> = '$EMAIL'";
> > mysql_query($sql) or die("Invalid query: " . mysql_error());
> > break;
> > case 'autoreply':
> > $sql="UPDATE contacts SET emailstatus = 'Bounced' WHERE emailaddress
> = '$EMAIL'";
> > mysql_query($sql) or die("Invalid query: " . mysql_error());
> > break;
> > default:
> > //don't do anything
> > break;
> > }
> > }
> >
> > }
> >
> >
> >
>
> I think you need to check the boundary conditions on your loop.
> As you write it,
>
>
> for($i = 1; $i <= $number; $i++)
>
> if $number is 4 then $i will have the values 1,2,3,4.
>
> Perhaps message list is zero-based, and you actually need to count from
> zero:
>
> for($i = 0; $i < $number; $i++)
>
> so you would get $i to read 0,1,2,3
>
> The manual page doesn't explicitly say the the message number is one-based,
> and most real programming languages these days use zero-based arrays...
>
> --
> Peter Ford phone: 01580 893333
> Developer fax: 01580 893399
> Justcroft International Ltd., Staplehurst, Kent
>
>
>
> --
> PHP General Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
>
>
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php