<?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 <rich_y@php.net>
* @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://user:pass@mail.example.com:110/INBOX#notls
//
// 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://user:pass@mail.example.net:143/INBOX';
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=&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\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">
<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.
* 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.