On Tue, Sep 08, 2009 at 03:27:05AM +0900, Dave M G wrote:

> Paul,
> 
> Is there a decent tutorial anywhere on the net for the pop3.class.inc
> available on phpclasses.org?
> 
> http://www.phpclasses.org/browse/package/1120.html
> 
> Maybe I'm blind, but I just can't find anywhere a decent description or
> tutorial of what calls you can make to its functions. The documentation
> file has two sections in German and a terse section in English.
> 
> I'm trying to figure out how to get each message and get their subject
> line, from address, and then based on those two pieces of information,
> I'll take the whole body and store them in the right place in a MySQL
> database.
> 
> Just for reference, this is what I've built so far (I renamed
> pop3.class.inc to POP3.php):
> 
> include('POP3.php');
> $pop3 = new POP3();
> 
> // Connect to mail server
> $do = $pop3->connect ('xxx.xxxxxxxxx.com');
> if ($do == false)
> {
>       $message = $pop3->error;
> }
> 
> $do = $pop3->login ('uuuuuuuuuuu', 'ppppppppppp');
> 
> if ($do == false)
> {
>       $message = $pop3->error;
> }
> 
> $status = $pop3->get_office_status();
> 
> if ($status == false)
> {
>       die($pop3->error);
> }
> 
> $count = $status['count_mails'];
> 
> 
> for ($i = 1; $i <= $count; $i++)
> {
>       // Here's where I hit a wall.
>       // 1. Get the from address
>       // 2. Get the subject line
>       // 3. Get the header+body as one text file
>       // 4. Store it in the database.

I'm not sure why you're attempting to do the above. According to the
documentation, you should simply be able to do:

 for ($i = 1; $i <= $count; $i++) {
    $msg = $pop3->get_mail($i);
    // parse the message as you like
    $pop3->save2file($msg, 'myfilename.txt');
    // or
    $pop3->save2mysql(a bunch of parameters);
 }

The $msg is returned as an array of strings. You could use the PHP
implode() function to reconstruct the array as a single string. But the
POP3::save2file() function will do this and save it to a text file if
you like.

It appears the class doesn't provide any support for parsing the message
internally. So that part is up to you. However, you could set up a loop
like this:

for ($j = 0; $j < count($msg); $j++) {
    if (strpos($msg[$i], 'Subject: ') == 0)
        // got the subject line
    if (strpos($msg[$i], 'From: ') == 0)
        // got the From: address line
}

Parsing the subject line and From: address is up to you. But there are
plenty of PHP functions to search and parse strings.

Paul

-- 
Paul M. Foster

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

Reply via email to