|
@@ -17,6 +17,7 @@ require_once('../functions/imap.php');
|
|
require_once('../functions/mime.php');
|
|
require_once('../functions/mime.php');
|
|
require_once('../functions/date.php');
|
|
require_once('../functions/date.php');
|
|
require_once('../functions/url_parser.php');
|
|
require_once('../functions/url_parser.php');
|
|
|
|
+require_once('../functions/smtp.php');
|
|
|
|
|
|
/**
|
|
/**
|
|
* Given an IMAP message id number, this will look it up in the cached
|
|
* Given an IMAP message id number, this will look it up in the cached
|
|
@@ -58,8 +59,9 @@ function RemoveAddress(&$addr_list, $addr) {
|
|
|
|
|
|
/** returns the index of the previous message from the array. */
|
|
/** returns the index of the previous message from the array. */
|
|
function findPreviousMessage() {
|
|
function findPreviousMessage() {
|
|
- global $msort, $currentArrayIndex, $sort, $msgs, $imapConnection;
|
|
|
|
- global $mailbox, $data_dir, $username;
|
|
|
|
|
|
+ global $msort, $currentArrayIndex, $sort, $msgs, $imapConnection,
|
|
|
|
+ $mailbox, $data_dir, $username;
|
|
|
|
+
|
|
$result = -1;
|
|
$result = -1;
|
|
|
|
|
|
if ($sort == 6) {
|
|
if ($sort == 6) {
|
|
@@ -87,26 +89,26 @@ function findPreviousMessage() {
|
|
* "printer friendly".
|
|
* "printer friendly".
|
|
*/
|
|
*/
|
|
function printer_friendly_link() {
|
|
function printer_friendly_link() {
|
|
- global $passed_id, $mailbox, $ent_num, $color;
|
|
|
|
- global $pf_subtle_link;
|
|
|
|
- global $javascript_on;
|
|
|
|
|
|
+ global $passed_id, $mailbox, $ent_num, $color,
|
|
|
|
+ $pf_subtle_link,
|
|
|
|
+ $javascript_on;
|
|
|
|
|
|
if (strlen(trim($mailbox)) < 1) {
|
|
if (strlen(trim($mailbox)) < 1) {
|
|
$mailbox = 'INBOX';
|
|
$mailbox = 'INBOX';
|
|
}
|
|
}
|
|
|
|
|
|
- $params = '?passed_ent_id=' . $ent_num;
|
|
|
|
- $params .= '&mailbox=' . urlencode($mailbox);
|
|
|
|
- $params .= '&passed_id=' . $passed_id;
|
|
|
|
|
|
+ $params = '?passed_ent_id=' . $ent_num .
|
|
|
|
+ '&mailbox=' . urlencode($mailbox) .
|
|
|
|
+ '&passed_id=' . $passed_id;
|
|
|
|
|
|
$print_text = _("View Printable Version");
|
|
$print_text = _("View Printable Version");
|
|
|
|
|
|
if (!$pf_subtle_link) {
|
|
if (!$pf_subtle_link) {
|
|
/* The link is large, on the bottom of the header panel. */
|
|
/* The link is large, on the bottom of the header panel. */
|
|
- $result = ' <tr bgcolor="' . $color[0] . '">' . "\n" .
|
|
|
|
- ' <td class="medText" align="right" valign="top">' . "\n" .
|
|
|
|
- ' ' . "\n" .
|
|
|
|
- ' </td><td class="medText" valign="top" colspan="2">'."\n";
|
|
|
|
|
|
+ $result = '<tr bgcolor="' . $color[0] . '">' .
|
|
|
|
+ '<td class="medText" align="right" valign="top">' .
|
|
|
|
+ ' ' .
|
|
|
|
+ '</td><td class="medText" valign="top" colspan="2">'."\n";
|
|
} else {
|
|
} else {
|
|
/* The link is subtle, below "view full header". */
|
|
/* The link is subtle, below "view full header". */
|
|
$result = "<BR>\n";
|
|
$result = "<BR>\n";
|
|
@@ -130,22 +132,162 @@ function printer_friendly_link() {
|
|
|
|
|
|
if (!$pf_subtle_link) {
|
|
if (!$pf_subtle_link) {
|
|
/* The link is large, on the bottom of the header panel. */
|
|
/* The link is large, on the bottom of the header panel. */
|
|
- $result .= ' </td>' . "\n" .
|
|
|
|
- ' </tr>' . "\n";
|
|
|
|
|
|
+ $result .= '</td></tr>' . "\n";
|
|
}
|
|
}
|
|
|
|
|
|
return ($result);
|
|
return ($result);
|
|
}
|
|
}
|
|
|
|
|
|
-/*****************************/
|
|
|
|
-/*** Main of read_boby.php ***/
|
|
|
|
-/*****************************/
|
|
|
|
|
|
+function ServerMDNSupport( $read ) {
|
|
|
|
+
|
|
|
|
+ $num = 0;
|
|
|
|
+ $resp = '';
|
|
|
|
+ while ($num < count($read) ) {
|
|
|
|
+ $resp .= $read[$num];
|
|
|
|
+ $num++;
|
|
|
|
+ }
|
|
|
|
+ $read[] = split(' * ', $resp);
|
|
|
|
+ $num = 0;
|
|
|
|
+ $ret = FALSE;
|
|
|
|
+ while ( !$ret && $num < count($read) ) {
|
|
|
|
+ if ( ereg('PERMANENTFLAGS', $read[$num] ) ) {
|
|
|
|
+ $ret = ( ereg('mdnsent',strtolower($read[$num]) ) || ereg("\\\*", $read[$num] ) );
|
|
|
|
+ }
|
|
|
|
+ $num++;
|
|
|
|
+ }
|
|
|
|
+ return ( $ret );
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+function SendMDN ( $recipient , $sender) {
|
|
|
|
+ global $imapConnection, $mailbox, $username, $attachment_dir, $SERVER_NAME,
|
|
|
|
+ $version, $attachments, $identity, $data_dir, $passed_id;
|
|
|
|
+
|
|
|
|
+ $message = sqimap_get_message($imapConnection, $passed_id, $mailbox);
|
|
|
|
+ $header = $message->header;
|
|
|
|
+
|
|
|
|
+ $hashed_attachment_dir = getHashedDir($username, $attachment_dir);
|
|
|
|
+
|
|
|
|
+ // part 1 (RFC2298)
|
|
|
|
+
|
|
|
|
+ $senton = getLongDateString( $header->date );
|
|
|
|
+ $to_array = $header->to;
|
|
|
|
+ $to = '';
|
|
|
|
+ foreach ($to_array as $line) {
|
|
|
|
+ $to .= " $line ";
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ $subject = $header->subject;
|
|
|
|
+ $now = getLongDateString( time() );
|
|
|
|
+ $body = sprintf( _("This message sent on %s to %s with subject \"%s\" has been displayed on %s."),
|
|
|
|
+ $senton, $to, $subject, $now ) .
|
|
|
|
+ "\r\n" .
|
|
|
|
+ _("This is no guarantee that the message has been read or understood.") . "\r\n";
|
|
|
|
+
|
|
|
|
+ // part2 (RFC2298)
|
|
|
|
+
|
|
|
|
+ $original_recipient = $to;
|
|
|
|
+ $original_message_id = $header->message_id;
|
|
|
|
+
|
|
|
|
+ $part2 = "Reporting-UA : $SERVER_NAME ; SquirrelMail (version $version) \r\n";
|
|
|
|
+ if ($original_recipient != '') {
|
|
|
|
+ $part2 .= "Original-Recipient : $original_recipient\r\n";
|
|
|
|
+ }
|
|
|
|
+ $final_recipient = $sender;
|
|
|
|
+ $part2 .= "Final-Recipient: rfc822; $final_recipient\r\n" .
|
|
|
|
+ "Original-Message-ID : $original_message_id\r\n" .
|
|
|
|
+ "Disposition: manual-action/MDN-sent-manually; displayed\r\n";
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ $localfilename = GenerateRandomString(32, 'FILE', 7);
|
|
|
|
+ $full_localfilename = "$hashed_attachment_dir/$localfilename";
|
|
|
|
+
|
|
|
|
+ $fp = fopen( $full_localfilename, 'w');
|
|
|
|
+ fwrite ($fp, $part2);
|
|
|
|
+ fclose($fp);
|
|
|
|
+
|
|
|
|
+ $newAttachment = array();
|
|
|
|
+ $newAttachment['localfilename'] = $localfilename;
|
|
|
|
+ $newAttachment['type'] = "message/disposition-notification";
|
|
|
|
+
|
|
|
|
+ $attachments[] = $newAttachment;
|
|
|
|
+ $MDN_to = trim($recipient);
|
|
|
|
+ $reply_id = 0;
|
|
|
|
+
|
|
|
|
+ return (SendMessage($MDN_to,'','',"Read: $subject", $body,$reply_id, True, 3) );
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+function ToggleMDNflag ( $set ) {
|
|
|
|
+
|
|
|
|
+ global $imapConnection, $passed_id;
|
|
|
|
+
|
|
|
|
+ $myflag = '$MDNSent';
|
|
|
|
+ if ($set) {
|
|
|
|
+ $read = sqimap_run_command ($imapConnection, "STORE $passed_id +FLAGS ($myflag)", true,
|
|
|
|
+ $response, $readmessage);
|
|
|
|
+ } else {
|
|
|
|
+ $read = sqimap_run_command ($imapConnection, "STORE $passed_id -FLAGS ($myflag)", true,
|
|
|
|
+ $response, $readmessage);
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+function ClearAttachments() {
|
|
|
|
+ global $username, $attachments, $attachment_dir;
|
|
|
|
+
|
|
|
|
+ $hashed_attachment_dir = getHashedDir($username, $attachment_dir);
|
|
|
|
+
|
|
|
|
+ foreach ($attachments as $info) {
|
|
|
|
+ $attached_file = "$hashed_attachment_dir/$info[localfilename]";
|
|
|
|
+ if (file_exists($attached_file)) {
|
|
|
|
+ unlink($attached_file);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ $attachments = array();
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+/*
|
|
|
|
+ * Main of read_boby.php --------------------------------------------------
|
|
|
|
+ */
|
|
|
|
+
|
|
|
|
+/*
|
|
|
|
+ Urled vars
|
|
|
|
+ ----------
|
|
|
|
+ $passed_id
|
|
|
|
+*/
|
|
|
|
|
|
$imapConnection = sqimap_login($username, $key, $imapServerAddress, $imapPort, 0);
|
|
$imapConnection = sqimap_login($username, $key, $imapServerAddress, $imapPort, 0);
|
|
-sqimap_mailbox_select($imapConnection, $mailbox);
|
|
|
|
|
|
+$read = sqimap_mailbox_select($imapConnection, $mailbox);
|
|
|
|
+
|
|
do_hook('html_top');
|
|
do_hook('html_top');
|
|
|
|
+
|
|
|
|
+/*
|
|
|
|
+ * The following code sets necesarry stuff for the MDN thing
|
|
|
|
+ */
|
|
|
|
+if( $default_use_mdn &&
|
|
|
|
+ ( $mdn_user_support = getPref($data_dir, $username, 'mdn_user_support', $default_use_mdn) ) ) {
|
|
|
|
+
|
|
|
|
+ $supportMDN = ServerMDNSupport($read);
|
|
|
|
+
|
|
|
|
+ $flags = sqimap_get_flags ($imapConnection, $passed_id);
|
|
|
|
+ $FirstTimeSee = TRUE;
|
|
|
|
+ $num=0;
|
|
|
|
+ while ($num < count($flags)) {
|
|
|
|
+ if ($flags[$num] == 'Seen') {
|
|
|
|
+ $FirstTimeSee = false;
|
|
|
|
+ }
|
|
|
|
+ $num++;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+}
|
|
|
|
+
|
|
displayPageHeader($color, $mailbox);
|
|
displayPageHeader($color, $mailbox);
|
|
|
|
|
|
|
|
+
|
|
|
|
+/*
|
|
|
|
+ * The following code shows the header of the message and then exit
|
|
|
|
+ */
|
|
if (isset($view_hdr)) {
|
|
if (isset($view_hdr)) {
|
|
$read = sqimap_run_command ($imapConnection, "FETCH $passed_id BODY[HEADER]", true, $a, $b);
|
|
$read = sqimap_run_command ($imapConnection, "FETCH $passed_id BODY[HEADER]", true, $a, $b);
|
|
|
|
|
|
@@ -159,9 +301,9 @@ if (isset($view_hdr)) {
|
|
} else {
|
|
} else {
|
|
echo "&passed_id=$passed_id&startMessage=$startMessage&show_more=$show_more\">";
|
|
echo "&passed_id=$passed_id&startMessage=$startMessage&show_more=$show_more\">";
|
|
}
|
|
}
|
|
- echo ''._("View message") . "</a></b></center></td></tr></table>\n" .
|
|
|
|
- "<table width=\"99%\" cellpadding=2 cellspacing=0 border=0 align=center>\n" .
|
|
|
|
- '<tr><td>';
|
|
|
|
|
|
+ echo _("View message") . "</a></b></center></td></tr></table>\n" .
|
|
|
|
+ "<table width=\"99%\" cellpadding=2 cellspacing=0 border=0 align=center>\n" .
|
|
|
|
+ '<tr><td>';
|
|
|
|
|
|
$cnum = 0;
|
|
$cnum = 0;
|
|
for ($i=1; $i < count($read); $i++) {
|
|
for ($i=1; $i < count($read); $i++) {
|
|
@@ -197,8 +339,8 @@ if (isset($view_hdr)) {
|
|
parseEmail($s);
|
|
parseEmail($s);
|
|
if (isset($f)) echo "<nobr><tt><b>$f</b>$s</tt></nobr>";
|
|
if (isset($f)) echo "<nobr><tt><b>$f</b>$s</tt></nobr>";
|
|
}
|
|
}
|
|
- echo "</td></tr></table>\n";
|
|
|
|
- echo '</body></html>';
|
|
|
|
|
|
+ echo "</td></tr></table>\n" .
|
|
|
|
+ '</body></html>';
|
|
sqimap_logout($imapConnection);
|
|
sqimap_logout($imapConnection);
|
|
exit;
|
|
exit;
|
|
}
|
|
}
|
|
@@ -290,7 +432,9 @@ $ent_num = findDisplayEntity($message);
|
|
$echo_more = _("more");
|
|
$echo_more = _("more");
|
|
$echo_less = _("less");
|
|
$echo_less = _("less");
|
|
|
|
|
|
-if (!isset($show_more_cc)) $show_more_cc = false;
|
|
|
|
|
|
+if (!isset($show_more_cc)) {
|
|
|
|
+ $show_more_cc = FALSE;
|
|
|
|
+}
|
|
|
|
|
|
/** FORMAT THE TO STRING **/
|
|
/** FORMAT THE TO STRING **/
|
|
$i = 0;
|
|
$i = 0;
|
|
@@ -446,13 +590,13 @@ $subject = decodeHeader(htmlspecialchars($message->header->subject));
|
|
|
|
|
|
do_hook('read_body_top');
|
|
do_hook('read_body_top');
|
|
echo '<BR>' .
|
|
echo '<BR>' .
|
|
- '<TABLE CELLSPACING="0" WIDTH="100%" BORDER="0" ALIGN="CENTER" CELLPADDING="0">' . "\n" .
|
|
|
|
- ' <TR><TD BGCOLOR="' . $color[9] . '" WIDTH="100%">' . "\n" .
|
|
|
|
- ' <TABLE WIDTH="100%" CELLSPACING="0" BORDER="0" CELLPADDING="3">' . "\n" .
|
|
|
|
- ' <TR>' . "\n" .
|
|
|
|
- ' <TD ALIGN="LEFT" WIDTH="33%">' . "\n" .
|
|
|
|
- ' <SMALL>' . "\n" .
|
|
|
|
- '<A HREF="' . $base_uri . 'src/';
|
|
|
|
|
|
+ '<TABLE CELLSPACING="0" WIDTH="100%" BORDER="0" ALIGN="CENTER" CELLPADDING="0">' .
|
|
|
|
+ '<TR><TD BGCOLOR="' . $color[9] . '" WIDTH="100%">' .
|
|
|
|
+ '<TABLE WIDTH="100%" CELLSPACING="0" BORDER="0" CELLPADDING="3">' .
|
|
|
|
+ '<TR>' .
|
|
|
|
+ '<TD ALIGN="LEFT" WIDTH="33%">' .
|
|
|
|
+ '<SMALL>' .
|
|
|
|
+ '<A HREF="' . $base_uri . 'src/';
|
|
|
|
|
|
if ($where && $what) {
|
|
if ($where && $what) {
|
|
if( $pos == '' ) {
|
|
if( $pos == '' ) {
|
|
@@ -478,10 +622,10 @@ if (($mailbox == $draft_folder) && ($save_as_draft)) {
|
|
}
|
|
}
|
|
|
|
|
|
echo ' ' .
|
|
echo ' ' .
|
|
- ' </SMALL>' . "\n" .
|
|
|
|
- ' </TD>' . "\n" .
|
|
|
|
- ' <TD WIDTH="33%" ALIGN="CENTER">' . "\n" .
|
|
|
|
- ' <SMALL>' . "\n";
|
|
|
|
|
|
+ '</SMALL>' .
|
|
|
|
+ '</TD>' .
|
|
|
|
+ '<TD WIDTH="33%" ALIGN="CENTER">' .
|
|
|
|
+ '<SMALL>';
|
|
|
|
|
|
if ( !($where && $what) ) {
|
|
if ( !($where && $what) ) {
|
|
|
|
|
|
@@ -505,40 +649,40 @@ if ( !($where && $what) ) {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
-echo ' </SMALL>' . "\n" .
|
|
|
|
- ' </TD><TD WIDTH="33%" ALIGN="RIGHT">' .
|
|
|
|
- ' <SMALL>' .
|
|
|
|
- ' <A HREF="' . $base_uri . "src/compose.php?forward_id=$passed_id&forward_subj=$url_subj&".
|
|
|
|
|
|
+echo '</SMALL>' .
|
|
|
|
+ '</TD><TD WIDTH="33%" ALIGN="RIGHT">' .
|
|
|
|
+ '<SMALL>' .
|
|
|
|
+ '<A HREF="' . $base_uri . "src/compose.php?forward_id=$passed_id&forward_subj=$url_subj&".
|
|
($default_use_priority?"mailprio=$priority_level&":"")
|
|
($default_use_priority?"mailprio=$priority_level&":"")
|
|
."mailbox=$urlMailbox&ent_num=$ent_num\">" .
|
|
."mailbox=$urlMailbox&ent_num=$ent_num\">" .
|
|
_("Forward") .
|
|
_("Forward") .
|
|
'</A> | ' .
|
|
'</A> | ' .
|
|
- ' <A HREF="' . $base_uri . "src/compose.php?send_to=$url_replyto&reply_subj=$url_subj&".
|
|
|
|
|
|
+ '<A HREF="' . $base_uri . "src/compose.php?send_to=$url_replyto&reply_subj=$url_subj&".
|
|
($default_use_priority?"mailprio=$priority_level&":"").
|
|
($default_use_priority?"mailprio=$priority_level&":"").
|
|
"reply_id=$passed_id&mailbox=$urlMailbox&ent_num=$ent_num\">" .
|
|
"reply_id=$passed_id&mailbox=$urlMailbox&ent_num=$ent_num\">" .
|
|
_("Reply") .
|
|
_("Reply") .
|
|
'</A> | ' .
|
|
'</A> | ' .
|
|
- ' <A HREF="' . $base_uri . "src/compose.php?send_to=$url_replytoall&send_to_cc=$url_replytoallcc&reply_subj=$url_subj&".
|
|
|
|
|
|
+ '<A HREF="' . $base_uri . "src/compose.php?send_to=$url_replytoall&send_to_cc=$url_replytoallcc&reply_subj=$url_subj&".
|
|
($default_use_priority?"mailprio=$priority_level&":"").
|
|
($default_use_priority?"mailprio=$priority_level&":"").
|
|
"reply_id=$passed_id&mailbox=$urlMailbox&ent_num=$ent_num\">" .
|
|
"reply_id=$passed_id&mailbox=$urlMailbox&ent_num=$ent_num\">" .
|
|
_("Reply All") .
|
|
_("Reply All") .
|
|
'</A> ' .
|
|
'</A> ' .
|
|
- ' </SMALL>' .
|
|
|
|
- ' </TD>' .
|
|
|
|
- ' </TR>' .
|
|
|
|
- ' </TABLE>' .
|
|
|
|
- ' </TD></TR>' .
|
|
|
|
- ' <TR><TD CELLSPACING="0" WIDTH="100%">' .
|
|
|
|
- ' <TABLE WIDTH="100%" BORDER="0" CELLSPACING="0" CELLPADDING="3">' . "\n" .
|
|
|
|
- ' <TR>' . "\n";
|
|
|
|
|
|
+ '</SMALL>' .
|
|
|
|
+ '</TD>' .
|
|
|
|
+ '</TR>' .
|
|
|
|
+ '</TABLE>' .
|
|
|
|
+ '</TD></TR>' .
|
|
|
|
+ '<TR><TD CELLSPACING="0" WIDTH="100%">' .
|
|
|
|
+ '<TABLE WIDTH="100%" BORDER="0" CELLSPACING="0" CELLPADDING="3">' . "\n" .
|
|
|
|
+ '<TR>' . "\n";
|
|
|
|
|
|
/** subject **/
|
|
/** subject **/
|
|
-echo " <TD BGCOLOR=\"$color[0]\" WIDTH=\"10%\" ALIGN=\"right\" VALIGN=\"top\">\n" .
|
|
|
|
|
|
+echo "<TD BGCOLOR=\"$color[0]\" WIDTH=\"10%\" ALIGN=\"right\" VALIGN=\"top\">\n" .
|
|
_("Subject:") .
|
|
_("Subject:") .
|
|
- " </TD><TD BGCOLOR=\"$color[0]\" WIDTH=\"80%\" VALIGN=\"top\">\n" .
|
|
|
|
- " <B>$subject</B> \n" .
|
|
|
|
- " </TD>\n" .
|
|
|
|
- ' <TD ROWSPAN="4" width="10%" BGCOLOR="' . $color[0] .
|
|
|
|
|
|
+ "</TD><TD BGCOLOR=\"$color[0]\" WIDTH=\"80%\" VALIGN=\"top\">\n" .
|
|
|
|
+ "<B>$subject</B> \n" .
|
|
|
|
+ "</TD>\n" .
|
|
|
|
+ '<TD ROWSPAN="4" width="10%" BGCOLOR="' . $color[0] .
|
|
'" ALIGN=right VALIGN=top NOWRAP><small>'.
|
|
'" ALIGN=right VALIGN=top NOWRAP><small>'.
|
|
'<A HREF="' . $base_uri . "src/read_body.php?mailbox=$urlMailbox&passed_id=$passed_id&";
|
|
'<A HREF="' . $base_uri . "src/read_body.php?mailbox=$urlMailbox&passed_id=$passed_id&";
|
|
|
|
|
|
@@ -557,64 +701,64 @@ if ($pf_subtle_link) {
|
|
}
|
|
}
|
|
|
|
|
|
do_hook("read_body_header_right");
|
|
do_hook("read_body_header_right");
|
|
-echo '</small></TD>' . "\n" .
|
|
|
|
- ' </TR>' ."\n";
|
|
|
|
|
|
+echo '</small></TD>' .
|
|
|
|
+ ' </TR>';
|
|
|
|
|
|
/** from **/
|
|
/** from **/
|
|
-echo ' <TR>' . "\n" .
|
|
|
|
- ' <TD BGCOLOR="' . $color[0] . '" ALIGN="RIGHT">' . "\n" .
|
|
|
|
|
|
+echo '<TR>' .
|
|
|
|
+ '<TD BGCOLOR="' . $color[0] . '" ALIGN="RIGHT">' .
|
|
_("From:") .
|
|
_("From:") .
|
|
- ' </TD><TD BGCOLOR="' . $color[0] . '">' . "\n" .
|
|
|
|
- " <B>$from_name</B> \n" .
|
|
|
|
- ' </TD>' . "\n" .
|
|
|
|
- ' </TR>' . "\n";
|
|
|
|
|
|
+ '</TD><TD BGCOLOR="' . $color[0] . '">' .
|
|
|
|
+ "<B>$from_name</B> \n" .
|
|
|
|
+ '</TD>' .
|
|
|
|
+ '</TR>';
|
|
/** date **/
|
|
/** date **/
|
|
-echo ' <TR>' . "\n" .
|
|
|
|
- ' <TD BGCOLOR="' . $color[0] . '" ALIGN="RIGHT">' . "\n" .
|
|
|
|
|
|
+echo '<TR>' . "\n" .
|
|
|
|
+ '<TD BGCOLOR="' . $color[0] . '" ALIGN="RIGHT">' . "\n" .
|
|
_("Date:") .
|
|
_("Date:") .
|
|
- " </TD><TD BGCOLOR=\"$color[0]\">\n" .
|
|
|
|
- " <B>$dateString</B> \n" .
|
|
|
|
- ' </TD>' . "\n" .
|
|
|
|
- ' </TR>' . "\n";
|
|
|
|
|
|
+ "</TD><TD BGCOLOR=\"$color[0]\">\n" .
|
|
|
|
+ "<B>$dateString</B> \n" .
|
|
|
|
+ '</TD>' . "\n" .
|
|
|
|
+ '</TR>' . "\n";
|
|
|
|
|
|
/** to **/
|
|
/** to **/
|
|
-echo " <TR>\n" .
|
|
|
|
- " <TD BGCOLOR=\"$color[0]\" ALIGN=RIGHT VALIGN=TOP>\n" .
|
|
|
|
|
|
+echo "<TR>\n" .
|
|
|
|
+ "<TD BGCOLOR=\"$color[0]\" ALIGN=RIGHT VALIGN=TOP>\n" .
|
|
_("To:") .
|
|
_("To:") .
|
|
- ' </TD><TD BGCOLOR="' . $color[0] . '" VALIGN="TOP">' . "\n" .
|
|
|
|
- " <B>$to_string</B> \n" .
|
|
|
|
- ' </TD>' . "\n" .
|
|
|
|
- ' </TR>' . "\n";
|
|
|
|
|
|
+ '</TD><TD BGCOLOR="' . $color[0] . '" VALIGN="TOP">' . "\n" .
|
|
|
|
+ "<B>$to_string</B> \n" .
|
|
|
|
+ '</TD>' . "\n" .
|
|
|
|
+ '</TR>' . "\n";
|
|
/** cc **/
|
|
/** cc **/
|
|
if (isset($cc_string)) {
|
|
if (isset($cc_string)) {
|
|
- echo " <TR>\n" .
|
|
|
|
- " <TD BGCOLOR=\"$color[0]\" ALIGN=RIGHT VALIGN=TOP>\n" .
|
|
|
|
- ' Cc:' . "\n" .
|
|
|
|
- " </TD><TD BGCOLOR=\"$color[0]\" VALIGN=TOP colspan=2>\n" .
|
|
|
|
- " <B>$cc_string</B> \n" .
|
|
|
|
- ' </TD>' . "\n" .
|
|
|
|
- ' </TR>' . "\n";
|
|
|
|
|
|
+ echo '<TR>' .
|
|
|
|
+ "<TD BGCOLOR=\"$color[0]\" ALIGN=RIGHT VALIGN=TOP>" .
|
|
|
|
+ 'Cc:' .
|
|
|
|
+ "</TD><TD BGCOLOR=\"$color[0]\" VALIGN=TOP colspan=2>" .
|
|
|
|
+ "<B>$cc_string</B> " .
|
|
|
|
+ '</TD>' .
|
|
|
|
+ '</TR>' . "\n";
|
|
}
|
|
}
|
|
|
|
|
|
/** bcc **/
|
|
/** bcc **/
|
|
if (isset($bcc_string)) {
|
|
if (isset($bcc_string)) {
|
|
- echo " <TR>\n" .
|
|
|
|
- " <TD BGCOLOR=\"$color[0]\" ALIGN=RIGHT VALIGN=TOP>\n" .
|
|
|
|
- ' Bcc:' . "\n" .
|
|
|
|
- " </TD><TD BGCOLOR=\"$color[0]\" VALIGN=TOP colspan=2>\n" .
|
|
|
|
- " <B>$bcc_string</B> \n" .
|
|
|
|
- ' </TD>' . "\n" .
|
|
|
|
- ' </TR>' . "\n";
|
|
|
|
|
|
+ echo '<TR>'.
|
|
|
|
+ "<TD BGCOLOR=\"$color[0]\" ALIGN=RIGHT VALIGN=TOP>" .
|
|
|
|
+ 'Bcc:' .
|
|
|
|
+ "</TD><TD BGCOLOR=\"$color[0]\" VALIGN=TOP colspan=2>" .
|
|
|
|
+ "<B>$bcc_string</B> " .
|
|
|
|
+ '</TD>' .
|
|
|
|
+ '</TR>' . "\n";
|
|
}
|
|
}
|
|
if ($default_use_priority) {
|
|
if ($default_use_priority) {
|
|
if (isset($priority_string)) {
|
|
if (isset($priority_string)) {
|
|
- echo " <TR>\n" .
|
|
|
|
- " <TD BGCOLOR=\"$color[0]\" ALIGN=RIGHT VALIGN=TOP>\n" .
|
|
|
|
- " "._("Priority").": \n".
|
|
|
|
- " </TD><TD BGCOLOR=\"$color[0]\" VALIGN=TOP colspan=2>\n" .
|
|
|
|
- " <B>$priority_string</B> \n" .
|
|
|
|
- " </TD>" . "\n" .
|
|
|
|
- " </TR>" . "\n";
|
|
|
|
|
|
+ echo '<TR>' .
|
|
|
|
+ "<TD BGCOLOR=\"$color[0]\" ALIGN=RIGHT VALIGN=TOP>" .
|
|
|
|
+ _("Priority") . ': '.
|
|
|
|
+ "</TD><TD BGCOLOR=\"$color[0]\" VALIGN=TOP colspan=2>" .
|
|
|
|
+ "<B>$priority_string</B> " .
|
|
|
|
+ '</TD>' .
|
|
|
|
+ "</TR>" . "\n";
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
@@ -623,13 +767,13 @@ if ($show_xmailer_default) {
|
|
$response, $readmessage);
|
|
$response, $readmessage);
|
|
$mailer = substr($read[1], strpos($read[1], " "));
|
|
$mailer = substr($read[1], strpos($read[1], " "));
|
|
if (trim($mailer)) {
|
|
if (trim($mailer)) {
|
|
- echo " <TR>\n" .
|
|
|
|
- " <TD BGCOLOR=\"$color[0]\" ALIGN=RIGHT VALIGN=TOP>\n" .
|
|
|
|
- " "._("Mailer").": \n".
|
|
|
|
- " </TD><TD BGCOLOR=\"$color[0]\" VALIGN=TOP colspan=2>\n" .
|
|
|
|
- " <B>$mailer</B> \n" .
|
|
|
|
- " </TD>" . "\n" .
|
|
|
|
- " </TR>" . "\n";
|
|
|
|
|
|
+ echo '<TR>' .
|
|
|
|
+ "<TD BGCOLOR=\"$color[0]\" ALIGN=RIGHT VALIGN=TOP>" .
|
|
|
|
+ _("Mailer") . ': '.
|
|
|
|
+ "</TD><TD BGCOLOR=\"$color[0]\" VALIGN=TOP colspan=2>" .
|
|
|
|
+ "<B>$mailer</B> " .
|
|
|
|
+ '</TD>' .
|
|
|
|
+ "</TR>" . "\n";
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
@@ -638,7 +782,160 @@ if (!$pf_subtle_link) {
|
|
echo printer_friendly_link(true);
|
|
echo printer_friendly_link(true);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+if ($default_use_mdn) {
|
|
|
|
+ if ($mdn_user_support) {
|
|
|
|
+
|
|
|
|
+ // debug gives you the capability to remove mdn-flags
|
|
|
|
+ $debug = FALSE;
|
|
|
|
+
|
|
|
|
+ $read = sqimap_run_command ($imapConnection, "FETCH $passed_id BODY.PEEK[HEADER.FIELDS (Disposition-Notification-To)]", true,
|
|
|
|
+ $response, $readmessage);
|
|
|
|
+ $MDN_to = substr($read[1], strpos($read[1], ' '));
|
|
|
|
+ $MDN_flag_present = false;
|
|
|
|
+
|
|
|
|
+ $read = sqimap_run_command ($imapConnection, "FETCH $passed_id FLAGS", true,
|
|
|
|
+ $response, $readmessage);
|
|
|
|
+ $str = strtolower($read[0]);
|
|
|
|
+ if (ereg('mdnsent', $str ) ) {
|
|
|
|
+ $MDN_flag_present = true;
|
|
|
|
+ }
|
|
|
|
+ if (trim($MDN_to) &&
|
|
|
|
+ (!isset( $sendreceipt ) || $sendreceipt == '' ) ) {
|
|
|
|
+
|
|
|
|
+ if ( $MDN_flag_present && $supportMDN) {
|
|
|
|
+ $sendreceipt="removeMDN";
|
|
|
|
+ $url = "\"read_body.php?mailbox=$mailbox&passed_id=$passed_id&startMessage=$startMessage&show_more=$show_more&sendreceipt=$sendreceipt\"";
|
|
|
|
+ $sendreceipt="";
|
|
|
|
+ if ($debug ) {
|
|
|
|
+ echo '<TR>' .
|
|
|
|
+ "<TD BGCOLOR=\"$color[9]\" ALIGN=RIGHT VALIGN=TOP>" .
|
|
|
|
+ _("Read receipt") . ': ' .
|
|
|
|
+ "</TD><TD BGCOLOR=\"$color[9]\" VALIGN=TOP colspan=2>" .
|
|
|
|
+ '<B>' .
|
|
|
|
+ _("send") .
|
|
|
|
+ "</B> <a href=$url>[" . _("Remove MDN flag") . '] </a>' .
|
|
|
|
+ '</TD>' .
|
|
|
|
+ '</TR>' . "\n";
|
|
|
|
+ } else {
|
|
|
|
+ echo '<TR>' .
|
|
|
|
+ "<TD BGCOLOR=\"$color[9]\" ALIGN=RIGHT VALIGN=TOP>" .
|
|
|
|
+ _("Read receipt") . ': ' .
|
|
|
|
+ "</TD><TD BGCOLOR=\"$color[9]\" VALIGN=TOP colspan=2>" .
|
|
|
|
+ '<B>'._("send").'</B>'.
|
|
|
|
+ '</TD>' .
|
|
|
|
+ '</TR>' . "\n";
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ } // when deleted or draft flag is set don't offer to send a MDN response
|
|
|
|
+ else if ( ereg('Draft',$read[0] || ereg('Deleted',$read[0])) ) {
|
|
|
|
+ echo '<TR>' .
|
|
|
|
+ "<TD BGCOLOR=\"$color[9]\" ALIGN=RIGHT VALIGN=TOP>" .
|
|
|
|
+ _("Read receipt") . ': '.
|
|
|
|
+ "</TD><TD BGCOLOR=\"$color[9]\" VALIGN=TOP colspan=2>" .
|
|
|
|
+ '<B>' . _("requested") . "</B>" .
|
|
|
|
+ '</TD>' .
|
|
|
|
+ '</TR>' . "\n";
|
|
|
|
+ }
|
|
|
|
+ // if no MDNsupport don't use the annoying popup messages
|
|
|
|
+ else if ( !$FirstTimeSee ) {
|
|
|
|
+ $sendreceipt = 'send';
|
|
|
|
+ $url = "\"read_body.php?mailbox=$mailbox&passed_id=$passed_id&startMessage=$startMessage&show_more=$show_more&sendreceipt=$sendreceipt\"";
|
|
|
|
+ echo '<TR>' .
|
|
|
|
+ "<TD BGCOLOR=\"$color[9]\" ALIGN=RIGHT VALIGN=TOP>" .
|
|
|
|
+ _("Read receipt") . ': ' .
|
|
|
|
+ "</TD><TD BGCOLOR=\"$color[9]\" VALIGN=TOP colspan=2>" .
|
|
|
|
+ '<B>' . _("requested") .
|
|
|
|
+ "</B> <a href=$url>[" . _("Send read receipt now") . "]</a>" .
|
|
|
|
+ '</TD>' .
|
|
|
|
+ '</TR>' . "\n";
|
|
|
|
+ $sendreceipt='';
|
|
|
|
+ }
|
|
|
|
+ else {
|
|
|
|
+ $sendreceipt = 'send';
|
|
|
|
+ $url = "\"read_body.php?mailbox=$mailbox&passed_id=$passed_id&startMessage=$startMessage&show_more=$show_more&sendreceipt=$sendreceipt\"";
|
|
|
|
+ if ($javascript_on) {
|
|
|
|
+ echo "<script language=\"javascript\"> \n" .
|
|
|
|
+ '<!-- ' . "\n" .
|
|
|
|
+ " if (window.confirm(\"" .
|
|
|
|
+ _("The message sender has requested a response to indicate that you have read this message. Would you like to send a receipt?") .
|
|
|
|
+ "\")) { \n" .
|
|
|
|
+ " window.location=($url); \n" .
|
|
|
|
+ ' window.reload()' . "\n" .
|
|
|
|
+ ' }' . "\n" .
|
|
|
|
+ '// -->' . "\n" .
|
|
|
|
+ '</script>' . "\n";
|
|
|
|
+ }
|
|
|
|
+ echo '<TR>' .
|
|
|
|
+ "<TD BGCOLOR=\"$color[9]\" ALIGN=RIGHT VALIGN=TOP>" .
|
|
|
|
+ _("Read receipt") . ': ' .
|
|
|
|
+ "</TD><TD BGCOLOR=\"$color[9]\" VALIGN=TOP colspan=2>" .
|
|
|
|
+ '<B>' . _("requested") . "  </B><a href=$url>" . '[' .
|
|
|
|
+ _("Send read receipt now") . '] </a>' ." \n" .
|
|
|
|
+ '</TD>' .
|
|
|
|
+ '</TR>' . "\n";
|
|
|
|
+ $sendreceipt = '';
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if ( !isset( $sendreceipt ) ) {
|
|
|
|
+ } else if ( $sendreceipt == 'send' ) {
|
|
|
|
+ if ( !$MDN_flag_present) {
|
|
|
|
+ if (isset($identity) ) {
|
|
|
|
+ $final_recipient = getPref($data_dir, $username, 'email_address' . '0');
|
|
|
|
+ } else $final_recipient = getPref($data_dir, $username, 'email_address');
|
|
|
|
+
|
|
|
|
+ $final_recipient = trim($final_recipient);
|
|
|
|
+ if ($final_recipient == '' ) {
|
|
|
|
+ $final_recipient = getPref($data_dir, $username, 'email_address');
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if ( SendMDN( $MDN_to, $final_recipient ) > 0 && $supportMDN == true ) {
|
|
|
|
+ ToggleMDNflag ( true);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ $sendreceipt = 'removeMDN';
|
|
|
|
+ $url = "\"read_body.php?mailbox=$mailbox&passed_id=$passed_id&startMessage=$startMessage&show_more=$show_more&sendreceipt=$sendreceipt\"";
|
|
|
|
+ $sendreceipt="";
|
|
|
|
+
|
|
|
|
+ if ($debug && $supportMDN) {
|
|
|
|
+ echo " <TR>\n" .
|
|
|
|
+ " <TD BGCOLOR=\"$color[9]\" ALIGN=RIGHT VALIGN=TOP>\n" .
|
|
|
|
+ " "._("Read receipt").": \n".
|
|
|
|
+ " </TD><TD BGCOLOR=\"$color[9]\" VALIGN=TOP colspan=2>\n" .
|
|
|
|
+ ' <B>'._("send").'</B>'." <a href=$url>" . '[' . _("Remove MDN flag") . '] </a>' . "\n" .
|
|
|
|
+ ' </TD>' . "\n" .
|
|
|
|
+ ' </TR>' . "\n";
|
|
|
|
+ } else {
|
|
|
|
+ echo " <TR>\n" .
|
|
|
|
+ " <TD BGCOLOR=\"$color[9]\" ALIGN=RIGHT VALIGN=TOP>\n" .
|
|
|
|
+ " "._("Read receipt").": \n".
|
|
|
|
+ " </TD><TD BGCOLOR=\"$color[9]\" VALIGN=TOP colspan=2>\n" .
|
|
|
|
+ ' <B>'._("send").'</B>'. "\n" .
|
|
|
|
+ ' </TD>' . "\n" .
|
|
|
|
+ ' </TR>' . "\n";
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ elseif ($sendreceipt == 'removeMDN' ) {
|
|
|
|
+ ToggleMDNflag ( false );
|
|
|
|
+
|
|
|
|
+ $sendreceipt = 'send';
|
|
|
|
+ $url = "\"read_body.php?mailbox=$mailbox&passed_id=$passed_id&startMessage=$startMessage&show_more=$show_more&sendreceipt=$sendreceipt\"";
|
|
|
|
+ echo '<TR>'.
|
|
|
|
+ "<TD BGCOLOR=\"$color[9]\" ALIGN=RIGHT VALIGN=TOP>" .
|
|
|
|
+ _("Read receipt") . ': ' .
|
|
|
|
+ "</TD><TD BGCOLOR=\"$color[9]\" VALIGN=TOP colspan=2>" .
|
|
|
|
+ '<B>' . _("requested") .
|
|
|
|
+ "</B> <a href=$url>[" . _("Send read receipt now") . "]</a>" .
|
|
|
|
+ '</TD>' .
|
|
|
|
+ '</TR>' . "\n";
|
|
|
|
+ $sendreceipt = '';
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+
|
|
do_hook('read_body_header');
|
|
do_hook('read_body_header');
|
|
|
|
+
|
|
echo '</TABLE>' .
|
|
echo '</TABLE>' .
|
|
' </TD></TR>' .
|
|
' </TD></TR>' .
|
|
'</TABLE>';
|
|
'</TABLE>';
|
|
@@ -659,18 +956,18 @@ if (($attachment_common_show_images) &&
|
|
|
|
|
|
foreach ($attachment_common_show_images_list as $img) {
|
|
foreach ($attachment_common_show_images_list as $img) {
|
|
$imgurl = '../src/download.php' .
|
|
$imgurl = '../src/download.php' .
|
|
- '?' .
|
|
|
|
|
|
+ '?' .
|
|
'passed_id=' . urlencode($img['passed_id']) .
|
|
'passed_id=' . urlencode($img['passed_id']) .
|
|
'&mailbox=' . urlencode($mailbox) .
|
|
'&mailbox=' . urlencode($mailbox) .
|
|
'&passed_ent_id=' . urlencode($img['ent_id']) .
|
|
'&passed_ent_id=' . urlencode($img['ent_id']) .
|
|
'&absolute_dl=true';
|
|
'&absolute_dl=true';
|
|
|
|
|
|
echo "<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=2 ALIGN=CENTER>\n" .
|
|
echo "<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=2 ALIGN=CENTER>\n" .
|
|
- " <TR>\n" .
|
|
|
|
- " <TD>\n" .
|
|
|
|
- " <img src=\"$imgurl\">\n" .
|
|
|
|
- " </TD>\n" .
|
|
|
|
- " </TR>\n" .
|
|
|
|
|
|
+ '<TR>' .
|
|
|
|
+ '<TD>' .
|
|
|
|
+ "<img src=\"$imgurl\">\n" .
|
|
|
|
+ "</TD>\n" .
|
|
|
|
+ "</TR>\n" .
|
|
"</TABLE>\n";
|
|
"</TABLE>\n";
|
|
|
|
|
|
}
|
|
}
|