Richard York

Web Developer, Author, and Artist

Mail_IMAPv2 Message Viewer Example

<?php /** * This example provides a basic demonstration of how Mail_IMAP can be used to * view multipart messages. See {@link connect} for extended documentation on * how to set the connection URI. * * This example is part of the message viewer. Here the headers are retrieved for * a message part and the message part itself is displayed using an inline frame. * * * @author Richard York <> * @copyright (c) Copyright 2004, Richard York, All Rights Reserved. * @package Mail_IMAP * @subpackage examples * */ // Use an existing imap resource stream, or provide a URI abstraction. // Example of URI: // pop3:// // // If you are unsure of the URI syntax to use here, // use the Mail_IMAP_connection_wizard to find the right URI. // Or see docs for Mail_IMAP::connect // // The connection URI must also be set in: // IMAP.inbox.php. // IMAP.message_viewer.php // IMAP.part_viewer.php require_once 'Mail/IMAP.php'; $connection = 'imap://'; if (!isset($_GET['dump_mid'])) { $msg =& new Mail_IMAP(); } else { // Call on debuging automatically. include 'Mail/IMAP/Debug/Debug.php'; $msg =& new Mail_IMAP_Debug($connection); if ($msg->error->hasErrors()) { $msg->dump($msg->error->getErrors(TRUE)); } } // Open up a mail connection if (!$msg->connect($connection)) { echo $msg->alerts(); echo $msg->errors(); echo "<span style='font-weight: bold;'>Error:</span> Unable to build a connection."; } // Get parts and headers $mid = $_GET['mid']; $pid = $_GET['pid']; $msg->getParts($mid, $pid); $msg->getHeaders($mid, $pid); function Mail_IMAP_do_address_line(&$msg, &$mid, $line) { $rtn = (string) ''; if (!empty($msg->header[$mid][$line])) { foreach ($msg->header[$mid][$line] as $i => $address) { if (isset($msg->header[$mid][$line.'_personal'][$i]) && !empty($msg->header[$mid][$line.'_personal'][$i])) { $rtn .= "<span title='".str_replace('@', ' at ', $msg->header[$mid][$line][$i])."'>".$msg->header[$mid][$line.'_personal'][$i]."</span> ;\n"; } else { $rtn .= str_replace('@', ' at ', $msg->header[$mid][$line][$i])."; \n"; } } } return $rtn; } function Mail_IMAP_do_parts(&$msg, &$mid, $disp) { $rtn = (string) ''; if (isset($msg->msg[$mid][$disp]['pid']) && count($msg->msg[$mid][$disp]['pid']) > 0) { foreach ($msg->msg[$mid][$disp]['pid'] as $i => $inid) { $rtn .= "<a href='/%7B%24_SERVER%5B'PHP_SELF']}?mid=&amp;pid=".$msg->msg[$mid][$disp]['pid'][$i]."' target='top'>".$msg->msg[$mid][$disp]['fname'][$i]." ".$msg->msg[$mid][$disp]['ftype'][$i]." ".$msg->convertBytes($msg->msg[$mid][$disp]['fsize'][$i])."</a><br />\n"; } } return $rtn; } echo "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"\"> <html> <head> <title> Mail_IMAP Inbox </title> <link rel='stylesheet' type='text/css' href='/IMAP.css' media='all' /> </head> <body> <table id='headerviewer'> <tbody> <tr> <td class='header'> Subject: </td> <td> {$msg->header[$mid]['subject']} </td> </tr> <tr> <td class='header'> To: </td> <td>\n".Mail_IMAP_do_address_line($msg, $mid, 'to')." </td> </tr> <tr> <td class='header'> Cc: </td> <td>\n".Mail_IMAP_do_address_line($msg, $mid, 'cc')." </td> </tr> <tr> <td class='header'> From: </td> <td>\n".Mail_IMAP_do_address_line($msg, $mid, 'from')." </td> </tr> <tr> <td class='header'> Received: </td> <td>".date('D d M, Y h:i:s', $msg->header[$mid]['udate'])."</td> </tr> <tr> <td class='header'> Inline Parts: </td> <td>".Mail_IMAP_do_parts($msg, $mid, 'in')."</td> </tr> <tr> <td class='header'> Attachments: </td> <td>".Mail_IMAP_do_parts($msg, $mid, 'at')."</td> </tr> </tbody> </table> <iframe src='/IMAP.part_viewer.php?mid=&pid=' name='part' style='width: 100%; height: 400px;'></iframe> </body> </html>"; ?>


There are no comments posted at this time.

Leave a Comment

Simple HTML is allowed: <code>, <b>, <i>, <u>, <var>, <strong>, <em>, <blockquote>, <ul>, <ol>, <li>, <p> (no attributes). All spacing and line breaks in your comment will be preserved.

* All comments are moderated and are subject to approval.
Your comment will appear once it has been approved.
Posting multiple times will not expedite the approval process.

Comments are closed at this time.

© Copyright 2014 Hot Toddy, All Rights Reserved.