[line
146]
Mbox PHP class to Unix MBOX parsing and using
METHODS: int resource mbox->open(string file) open a mbox and return a resource id
bool mbox->close(resource) close a mbox resource id
int mbox->size(resource) return mbox number of messages
string mbox->get(int resource, messageNumber) return the message number of the resource
bool mbox->update(int resource, int messageNumber, string message) update the message offset to message (need write permission)
bool mbox->remove(int resource, int messageNumber) remove the message messageNumber (need write permission)
bool mbox->insert(int resource, string message[, $offset = null]) add message to the end of the mbox. Offset == 0 message will be append at first message. If after == null will be the last one message. (need write permission)
RELATED LINKS:
- CPAN Perl Mail::Folder::Mbox Module
Used as a start point to create this class.
http://search.cpan.org/author/KJOHNSON/MailFolder-0.07/Mail/Folder/Mbox.pm
- PHP Mime Decode PEAR Module
Use it to parse headers and body.
http://pear.php.net/package-info.php?pacid=21
EXAMPLE: // some random content $content = <<<EOF From Foo@example.com Fri Dec 27 14:31:10 2002 Return-Path: Received: from [unix socket] by campos.example.com (LMTP); Fri, 27 Dec 2002 14:31:10 -0200 (BRST) Date: Fri, 27 Dec 2002 14:31:21 -0500 Message-Id: <200212271931.gBRJVL012289@example.com> Received: from pcp128525pcs.foo.example.com ( pcp128525pcs.example.com [99.99.99.99]) by/ serjolen6com.example.com (v64.19) with ESMTP id MAILRELAYINZA98-3601058302; Fri, 08 Nov 2002 06:39:05 -0500 From: "Foo@example.com" To: fool@example.com Subject: This is A SPAM!! Content-Type: text/plan
testing foo spam EOF;
// starting mbox require_once "mbox.php"; $mbox = new Mail_Mbox();
// uncomment to see lots of things #$mbox->debug = true;
// opennign file mbox $mid = $mbox->open("mbox");
// uncomment to see internal vars #print_r($mbox);
// deleting a message (uncomment to test) #$res1 = $mbox->remove($mid,0); if (PEAR::isError($res1)) { print $res1->getMessage(); }
// changing a message (uncomment to test) #$res2 = $mbox->update($mid,0,$content); if (PEAR::isError($res2)) { print $res2->getMessage(); }
// adding a message (uncomment to test) $res3 = $mbox->insert($mid,$content,0); if (PEAR::isError($res3)) { print $res3->getMessage(); }
require_once "Mail/mimeDecode.php"; // showing current messages with Mail Mime for ($x = 0; $x < $mbox->size($mid); $x++) { printf("Message: %08d
",$x);
$thisMessage = $mbox->get($mid,$x);
print $thisMessage;
print "
";
$decode = new Mail_mimeDecode($thisMessage, "\r\n");
$structure = $decode->decode();
print_r($structure);
print "<hr /><hr /><hr />"; }