Added BASIC mime support.
[squirrelmail.git] / src / read_body.php
1 <?
2 include("../config/config.php");
3 include("../functions/strings.php");
4 include("../functions/page_header.php");
5 include("../functions/imap.php");
6 include("../functions/mime.php");
7 include("../functions/mailbox.php");
8 include("../functions/date.php");
9
10 $imapConnection = loginToImapServer($username, $key, $imapServerAddress);
11 selectMailbox($imapConnection, $mailbox, $numMessages);
12
13 echo "<HTML><BODY TEXT=\"#000000\" BGCOLOR=\"#FFFFFF\" LINK=\"#0000EE\" VLINK=\"#0000EE\" ALINK=\"#0000EE\">\n";
14 displayPageHeader($mailbox);
15
16 // $message contains all information about the message
17 // including header and body
18 $message = fetchMessage($imapConnection, $passed_id);
19
20 /** translate the subject and mailbox into url-able text **/
21 $url_subj = urlencode(trim($message["HEADER"]["SUBJECT"]));
22 $urlMailbox = urlencode($mailbox);
23 $url_from = urlencode($message["HEADER"]["FROM"]);
24
25 $dateString = getLongDateString($message["HEADER"]["DATE"]);
26
27 /** FORMAT THE TO STRING **/
28 $i = 0;
29 $to_string = "";
30 $to_ary = $message["HEADER"]["TO"];
31 while ($i < count($to_ary)) {
32 $to_ary[$i] = htmlspecialchars($to_ary[$i]);
33 if ($to_string)
34 $to_string = "$to_string<BR>$to_ary[$i]";
35 else
36 $to_string = "$to_ary[$i]";
37
38 $i++;
39 if (count($to_ary) > 1) {
40 if ($show_more == false) {
41 if ($i == 1) {
42 $to_string = "$to_string&nbsp;(<A HREF=\"read_body.php?mailbox=$urlMailbox&passed_id=$passed_id&sort=$sort&startMessage=$startMessage&show_more=1&show_more_cc=$show_more_cc\">more</A>)";
43 $i = count($to_ary);
44 }
45 } else if ($i == 1) {
46 $to_string = "$to_string&nbsp;(<A HREF=\"read_body.php?mailbox=$urlMailbox&passed_id=$passed_id&sort=$sort&startMessage=$startMessage&show_more=0&show_more_cc=$show_more_cc\">less</A>)";
47 }
48 }
49 }
50
51 /** FORMAT THE CC STRING **/
52 $i = 0;
53 $cc_string = "";
54 $cc_ary = $message["HEADER"]["CC"];
55 while ($i < count($cc_ary)) {
56 $cc_ary[$i] = htmlspecialchars($cc_ary[$i]);
57 if ($cc_string)
58 $cc_string = "$cc_string<BR>$cc_ary[$i]";
59 else
60 $cc_string = "$cc_ary[$i]";
61
62 $i++;
63 if (count($cc_ary) > 1) {
64 if ($show_more_cc == false) {
65 if ($i == 1) {
66 $cc_string = "$cc_string&nbsp;(<A HREF=\"read_body.php?mailbox=$urlMailbox&passed_id=$passed_id&sort=$sort&startMessage=$startMessage&show_more_cc=1&show_more=$show_more\">more</A>)";
67 $i = count($cc_ary);
68 }
69 } else if ($i == 1) {
70 $cc_string = "$cc_string&nbsp;(<A HREF=\"read_body.php?mailbox=$urlMailbox&passed_id=$passed_id&sort=$sort&startMessage=$startMessage&show_more_cc=0&show_more=$show_more\">less</A>)";
71 }
72 }
73 }
74
75 /** make sure everything will display in HTML format **/
76 $from_name = htmlspecialchars($message["HEADER"]["FROM"]);
77 $subject = htmlspecialchars($message["HEADER"]["SUBJECT"]);
78
79 echo "<BR>";
80 echo "<TABLE COLS=1 WIDTH=95% BORDER=0 ALIGN=CENTER CELLPADDING=2>\n";
81 echo " <TR><TD BGCOLOR=DCDCDC WIDTH=100%>";
82 echo " <TABLE WIDTH=100% BORDER=0 COLS=2>";
83 echo " <TR>";
84 echo " <TD ALIGN=LEFT WIDTH=50%>";
85 echo " <FONT FACE=\"Arial,Helvetica\" SIZE=2>";
86 echo " <A HREF=\"right_main.php?sort=$sort&startMessage=$startMessage&mailbox=$urlMailbox\">Message List</A>&nbsp;&nbsp;";
87 echo " <A HREF=\"delete_message.php?mailbox=$urlMailbox&message=$passed_id&sort=$sort&startMessage=1\">Delete</A>&nbsp;&nbsp;";
88 echo " </FONT>";
89 echo " </TD><TD WIDTH=50% ALIGN=RIGHT>";
90 echo " <FONT FACE=\"Arial,Helvetica\" SIZE=2>";
91 echo " <A HREF=\"compose.php?forward_id=$passed_id&forward_subj=$url_subj&mailbox=$urlMailbox\">Forward</A>&nbsp;&nbsp;";
92 echo " <A HREF=\"compose.php?send_to=$url_from&reply_subj=$url_subj&reply_id=$passed_id&mailbox=$urlMailbox\">Reply</A>&nbsp;&nbsp;";
93 echo " </FONT>";
94 echo " </TD>";
95 echo " </TR>";
96 echo " </TABLE>";
97 echo " </TD></TR>";
98 echo " <TR><TD BGCOLOR=FFFFFF WIDTH=100%>";
99 echo " <TABLE COLS=2 WIDTH=100% BORDER=0 CELLSPACING=0 CELLPADDING=2>\n";
100 echo " <TR>\n";
101 /** subject **/
102 echo " <TD BGCOLOR=FFFFFF WIDTH=15% ALIGN=RIGHT>\n";
103 echo " <FONT FACE=\"Arial,Helvetica\">Subject:</FONT>\n";
104 echo " </TD><TD BGCOLOR=FFFFFF WIDTH=85%>\n";
105 echo " <FONT FACE=\"Arial,Helvetica\"><B>$subject</B></FONT>\n";
106 echo " </TD>\n";
107 echo " </TR>\n";
108 /** from **/
109 echo " <TR>\n";
110 echo " <TD BGCOLOR=FFFFFF WIDTH=15% ALIGN=RIGHT>\n";
111 echo " <FONT FACE=\"Arial,Helvetica\">From:</FONT>\n";
112 echo " </TD><TD BGCOLOR=FFFFFF WIDTH=85%>\n";
113 echo " <FONT FACE=\"Arial,Helvetica\"><B>$from_name</B></FONT>\n";
114 echo " </TD>\n";
115 echo " </TR>\n";
116 /** date **/
117 echo " <TR>\n";
118 echo " <TD BGCOLOR=FFFFFF WIDTH=15% ALIGN=RIGHT>\n";
119 echo " <FONT FACE=\"Arial,Helvetica\">Date:</FONT>\n";
120 echo " </TD><TD BGCOLOR=FFFFFF WIDTH=85%>\n";
121 echo " <FONT FACE=\"Arial,Helvetica\"><B>$dateString</B></FONT>\n";
122 echo " </TD>\n";
123 echo " </TR>\n";
124 /** to **/
125 echo " <TR>\n";
126 echo " <TD BGCOLOR=FFFFFF WIDTH=15% ALIGN=RIGHT VALIGN=TOP>\n";
127 echo " <FONT FACE=\"Arial,Helvetica\">To:</FONT>\n";
128 echo " </TD><TD BGCOLOR=FFFFFF WIDTH=85% VALIGN=TOP>\n";
129 echo " <FONT FACE=\"Arial,Helvetica\"><B>$to_string</B></FONT>\n";
130 echo " </TD>\n";
131 echo " </TR>\n";
132 /** cc **/
133 if ($message["HEADER"]["CC"][0]) {
134 echo " <TR>\n";
135 echo " <TD BGCOLOR=FFFFFF WIDTH=15% ALIGN=RIGHT VALIGN=TOP>\n";
136 echo " <FONT FACE=\"Arial,Helvetica\">Cc:</FONT>\n";
137 echo " </TD><TD BGCOLOR=FFFFFF WIDTH=85% VALIGN=TOP>\n";
138 echo " <FONT FACE=\"Arial,Helvetica\"><B>$cc_string</B></FONT>\n";
139 echo " </TD>\n";
140 echo " </TR>\n";
141 }
142 echo " </TABLE></TD></TR>\n";
143
144 echo " <TR><TD BGCOLOR=FFFFFF WIDTH=100%><BR>\n";
145 if (count($message["ENTITIES"]) > 1) {
146 echo "<B>This is a multipart MIME encoded message.<BR></B>";
147 $i = 0;
148 while ($i < count($message["ENTITIES"])) {
149 echo "<B>--(PART $i)--</B><BR>";
150 for ($p = 0; $p < count($message["ENTITIES"][$i][0]["BODY"]); $p++) {
151 echo $message["ENTITIES"][$i][0]["BODY"][$p];
152 }
153 $i++;
154 }
155 } else {
156 echo "<FONT COLOR=DD0000><B>This is a single part mime encoded message</B></FONT><BR>";
157 for ($p = 0; $p < count($message["ENTITIES"][0]["BODY"]); $p++) {
158 echo $message["ENTITIES"][0]["BODY"][$p];
159 }
160 }
161 echo " <BR></TD></TR>\n";
162 echo " <TR><TD BGCOLOR=DCDCDC>&nbsp;</TD></TR>";
163 echo "</TABLE>\n";
164
165 ?>