Email Reading Library (Source Code)

email.thumbnail

With the support of component ezc , You can read your email via pop3 protocol.

The email and password used here are only for temporary purpose. Try this code:

Click more for source code:

require_once("ezc/Base/base.php");

function __autoload( $className )
{
ezcBase::autoload( $className );

}

$pop3 = new ezcMailPop3Transport( "torque.co.in" );
$pop3->authenticate( temp@temp.com, "password" );
$set = $pop3->fetchAll(); // if you put "true" inside this function, all the mail will be deleted after retrieving. eg: fetchAll(true)
$parser = new ezcMailParser();
$mails = $parser->parseMail( $set );
$mail = end($mails);

echo formatMail($mail);

function formatMail( $mail )
{

$t = '';

$t .= "From: ". formatAddress( $mail->from ). "\n";
$t .= "To: ". formatAddresses( $mail->to ). "\n";
$t .= "Cc: ". formatAddresses( $mail->cc ). "\n";
$t .= "Bcc: ". formatAddresses( $mail->bcc ). "\n";
$t .= 'Date: '. date( DATE_RFC822, $mail->timestamp ). "\n";
$t .= 'Subject: '. $mail->subject . "\n";
$t .= "MessageId: ". $mail->messageId . "\n";
$t .= "\n";

$t .= formatMailPart( $mail->body );
return $t;
}

function formatMailPart( $part )
{
if ( $part instanceof ezcMail )
return formatMail( $part );

if ( $part instanceof ezcMailText )
return formatMailText( $part );

if ( $part instanceof ezcMailFile )
return formatMailFile( $part );

if ( $part instanceof ezcMailRfc822Digest )
return formatMailRfc822Digest( $part );

if ( $part instanceof ezcMailMultiPart )
return formatMailMultipart( $part );

die( "No clue about the ". get_class( $part ) . "\n" );
}

function formatMailMultipart( $part )
{
if ( $part instanceof ezcMailMultiPartAlternative )
return formatMailMultipartAlternative( $part );

if ( $part instanceof ezcMailMultiPartDigest )
return formatMailMultipartDigest( $part );

if ( $part instanceof ezcMailMultiPartRelated )
return formatMailMultipartRelated( $part );

if ( $part instanceof ezcMailMultiPartMixed )
return formatMailMultipartMixed( $part );

die( "No clue about the ". get_class( $part ) . "\n" );
}

function formatMailMultipartMixed( $part )
{
$t = '';
foreach ( $part->getParts() as $key => $alternativePart )
{
$t .= "-MIXED-$key------------------------------------------------------------------\n";
$t .= formatMailPart( $alternativePart );
}
$t .= "-MIXED END----------------------------------------------------------\n";
return $t;
}

function formatMailMultipartRelated( $part )
{
$t = '';
$t .= "-RELATED MAIN PART-----------------------------------------------------------\n";
$t .= formatMailPart( $part->getMainPart() );
foreach ( $part->getRelatedParts() as $key => $alternativePart )
{
$t .= "-RELATED PART $key-----------------------------------------------------\n";
$t .= formatMailPart( $alternativePart );
}
$t .= "-RELATED END--------------------------------------------------------\n";
return $t;
}

function formatMailMultipartDigest( $part )
{
$t = '';
foreach ( $part->getParts() as $key => $alternativePart )
{
$t .= "-DIGEST-$key-----------------------------------------------------------------\n";
$t .= formatMailPart( $alternativePart );
}
$t .= "-DIGEST END---------------------------------------------------------\n";
return $t;
}

function formatMailRfc822Digest( $part )
{
$t = '';
$t .= "-DIGEST-ITEM-$key------------------------------------------------------------\n";
$t .= "Item:\n\n";
$t .= formatMailpart( $part->mail );
$t .= "-DIGEST ITEM END----------------------------------------------------\n";
return $t;
}

function formatMailMultipartAlternative( $part )
{
$t = '';
foreach ( $part->getParts() as $key => $alternativePart )
{
$t .= "-ALTERNATIVE ITEM $key-------------------------------------------------------\n";
$t .= formatMailPart( $alternativePart );
}
$t .= "-ALTERNATIVE END----------------------------------------------------\n";
return $t;
}

function formatMailText( $part )
{
$t = '';
$t .= "Original Charset: {$part->originalCharset}\n";
$t .= "Charset: {$part->charset}\n";
$t .= "Encoding: {$part->encoding}\n";
$t .= "Type: {$part->subType}\n";
$t .= "\n{$part->text}\n";
return $t;
}

function formatMailFile( $part )
{
$t = '';
$t .= "Disposition Type: {$part->dispositionType}\n";
$t .= "Content Type: {$part->contentType}\n";
$t .= "Mime Type: {$part->mimeType}\n";
$t .= "Content ID: {$part->contentId}\n";
$t .= "Filename: {$part->fileName}\n";
$t .= "\n";
return $t;
}

function formatAddresses( $addresses )
{
$fa = array();
foreach ( $addresses as $address )
{
$fa[] = formatAddress( $address );
}
return implode( ', ', $fa );
}

function formatAddress( $address )
{
$name = '';
if ( !empty( $address->name ) )
{
$name = "{$address->name} ";
}
return $name . "<{$address->email}>";

}
7 Comments

7 Responses to “Email Reading Library (Source Code)”

  1. salihpk June 24, 2007 at 1:36 pm #

    Sir,
    I am from India/Kerala and I like all your codes and interested to study something from you !

    Plz mail me

  2. ghulamfareed August 9, 2007 at 11:11 am #

    AA
    hi i am from paistan and i wanted ot get the source code of php and interest to learn some thing

  3. shobn March 4, 2008 at 12:56 pm #

    Good one mate.. your site have some real good stuff!!! Keep up the good work

  4. Thomas Alexander October 15, 2008 at 5:07 pm #

    how can a word file can be viewed as html using php?

  5. Kapil October 17, 2011 at 5:34 pm #

    HEY i m from india and ur site is too good i want to make a php site with some amazing stuff could u give me some idea , like about a site and what features it should contain
    thanks and regards
    kapil waiting for reply

    • Mr Me October 18, 2011 at 6:14 pm #

      Perhaps, you can start a PHP website with new generation integration such as PHP + AS3, PHP + Adobe Air, or Flex etc. Better you find one.

      • KAPIL November 7, 2011 at 9:18 am #

        sure i do thanks a lot ,keep it up! love ur site -KAPIL

Leave a Reply

More in Downloads, php source code (43 of 45 articles)


How can we zip two files and save output as output.zip. For example, in gmail you can download all ...