Version 1.1.2 -- DEVELOPMENT
----------------------------
+- Support for multiple identities
Version 1.1.1 -- April 30, 2001
-------------------------------
$info['remotefilename'] . "\"\r\n";
$header .= "Content-Disposition: attachment; filename=\"" .
$info['remotefilename'] . "\"\r\n";
- $header .= "Content-Transfer-Encoding: base64\r\n\r\n";
- fputs ($fp, $header);
- $length += strlen($header);
$file = fopen ($attachment_dir . $info['localfilename'], 'r');
- while ($tmp = fread($file, 570)) {
- $encoded = chunk_split(base64_encode($tmp));
- $length += strlen($encoded);
- fputs ($fp, $encoded);
- }
+ if (substr($filetype, 0, 5) == 'text/' ||
+ $filetype == 'message/rfc822') {
+ $header .= "\r\n";
+ fputs ($fp, $header);
+ $length += strlen($header);
+ while ($tmp = fgets($file, 4096)) {
+ $tmp = str_replace("\r\n", "\n", $tmp);
+ $tmp = str_replace("\r", "\n", $tmp);
+ $tmp = str_replace("\n", "\r\n", $tmp);
+ fputs($fp, $tmp);
+ $length += strlen($tmp);
+ }
+ } else {
+ $header .= "Content-Transfer-Encoding: base64\r\n\r\n";
+ fputs ($fp, $header);
+ $length += strlen($header);
+ while ($tmp = fread($file, 570)) {
+ $encoded = chunk_split(base64_encode($tmp));
+ $length += strlen($encoded);
+ fputs ($fp, $encoded);
+ }
+ }
fclose ($file);
}
}
global $REMOTE_ADDR, $SERVER_NAME, $REMOTE_PORT;
global $data_dir, $username, $popuser, $domain, $version, $useSendmail;
global $default_charset, $HTTP_VIA, $HTTP_X_FORWARDED_FOR;
- global $REMOTE_HOST;
+ global $REMOTE_HOST, $identity;
// Storing the header to make sure the header is the same
// everytime the header is printed.
$to = expandAddrs(parseAddrs($t));
$cc = expandAddrs(parseAddrs($c));
$bcc = expandAddrs(parseAddrs($b));
- $reply_to = getPref($data_dir, $username, 'reply_to');
- $from = getPref($data_dir, $username, 'full_name');
- $from_addr = getPref($data_dir, $username, 'email_address');
+ if (isset($identity) && $identity != 'default')
+ {
+ $reply_to = getPref($data_dir, $username, 'reply_to' . $identity);
+ $from = getPref($data_dir, $username, 'full_name' . $identity);
+ $from_addr = getPref($data_dir, $username, 'email_address' . $identity);
+ }
+ else
+ {
+ $reply_to = getPref($data_dir, $username, 'reply_to');
+ $from = getPref($data_dir, $username, 'full_name');
+ $from_addr = getPref($data_dir, $username, 'email_address');
+ }
if ($from_addr == '')
$from_addr = $popuser.'@'.$domain;
function sendSMTP($t, $c, $b, $subject, $body, $more_headers) {
global $username, $popuser, $domain, $version, $smtpServerAddress, $smtpPort,
- $data_dir, $color, $use_authenticated_smtp;
+ $data_dir, $color, $use_authenticated_smtp, $identity;
$to = expandAddrs(parseAddrs($t));
$cc = expandAddrs(parseAddrs($c));
$bcc = expandAddrs(parseAddrs($b));
- $from_addr = getPref($data_dir, $username, 'email_address');
+ if (isset($identity) && $identity != 'default')
+ $from_addr = getPref($data_dir, $username, 'email_address' . $identity);
+ else
+ $from_addr = getPref($data_dir, $username, 'email_address');
if (!$from_addr)
$from_addr = "$popuser@$domain";
. '" name=send_to_cc>' . "\n";
echo "<input type=hidden value=\"" . htmlspecialchars($send_to_bcc)
. '" name=send_to_bcc>' . "\n";
+ echo "<input type=hidden value=\"" . htmlspecialchars($identity)
+ . '" name=identity>' . "\n";
echo "<input type=hidden name=mailbox value=\"" .
htmlspecialchars($mailbox) . "\">\n";
echo "<input type=hidden value=\"true\" name=from_htmladdr_search>\n";
$passed_body, $color, $use_signature, $signature, $prefix_sig,
$editor_size, $attachments, $subject, $newmail,
$use_javascript_addr_book, $send_to_bcc, $reply_id, $mailbox,
- $from_htmladdr_search, $location_of_buttons, $attachment_dir;
+ $from_htmladdr_search, $location_of_buttons, $attachment_dir,
+ $username, $data_dir, $identity;
$subject = decodeHeader($subject);
$reply_subj = decodeHeader($reply_subj);
if ($location_of_buttons == 'top') showComposeButtonRow();
+ $idents = getPref($data_dir, $username, 'identities');
+ if ($idents != '' && $idents > 1)
+ {
+ echo " <TR>\n";
+ echo " <TD BGCOLOR=\"$color[4]\" ALIGN=RIGHT>\n";
+ echo _("From:");
+ echo " </TD><TD BGCOLOR=\"$color[4]\">\n";
+ echo "<select name=identity>\n";
+ echo "<option value=default>" .
+ htmlspecialchars(getPref($data_dir, $username, 'full_name'));
+ $em = getPref($data_dir, $username, 'email_address');
+ if ($em != '')
+ echo htmlspecialchars(' <' . $em . '>') . "\n";
+ for ($i = 1; $i < $idents; $i ++) {
+ echo '<option value="' . $i . '"';
+ if (isset($identity) && $identity == $i)
+ echo ' SELECTED';
+ echo '>';
+ echo htmlspecialchars(getPref($data_dir, $username, 'full_name' .
+ $i));
+ $em = getPref($data_dir, $username, 'email_address' . $i);
+ if ($em != '')
+ echo htmlspecialchars(' <' . $em . '>') . "\n";
+ }
+ echo "</select>\n";
+ echo " </TD>\n";
+ echo " </TR>\n";
+ }
echo " <TR>\n";
echo " <TD BGCOLOR=\"$color[4]\" ALIGN=RIGHT>\n";
echo _("To:");
<?php
if (isset($submit_personal)) {
# Save personal information
- if (isset($full_name)) setPref($data_dir, $username, 'full_name', $full_name);
- if (isset($email_address)) setPref($data_dir, $username, 'email_address', $email_address);
- if (isset($reply_to)) setPref($data_dir, $username, 'reply_to', $reply_to);
+ if (isset($full_name))
+ setPref($data_dir, $username, 'full_name', $full_name);
+ if (isset($email_address))
+ setPref($data_dir, $username, 'email_address', $email_address);
+ if (isset($reply_to))
+ setPref($data_dir, $username, 'reply_to', $reply_to);
if (! isset($usesignature))
$usesignature = 0;
setPref($data_dir, $username, 'use_signature', $usesignature);
--- /dev/null
+<?php
+ /**
+ ** options_identities.php
+ **
+ ** $Id$
+ **/
+
+ include('../src/validate.php');
+ include('../functions/page_header.php');
+ include('../functions/display_messages.php');
+ include('../src/load_prefs.php');
+
+ if (isset($return)) {
+ SaveUpdateFunction();
+ header('Location: options_personal.php');
+ exit();
+ }
+
+ displayPageHeader($color, 'None');
+
+ if (CheckAndDoDefault() || CheckAndDoPromote()) {
+ SaveUpdateFunction();
+ }
+ if (isset($update))
+ SaveUpdateFunction();
+
+ LoadInfo($full_name, $email_address, $reply_to, '');
+
+?>
+<br>
+<table width=95% align=center border=0 cellpadding=2 cellspacing=0>
+ <tr>
+ <th bgcolor="<?php echo $color[0] ?>" align=center>
+ <?php echo _("Options") . " - " . _("Advanced Identities"); ?>
+ </th>
+ </tr>
+</table>
+
+<form name=f action="options_identities.php" method=post>
+<p align=center><input type=submit name=return value="<?PHP
+echo _("Save and return to the Personal Options"); ?>"><br><?PHP
+$num = getPref($data_dir, $username, 'identities');
+echo htmlspecialchars($num) . ' ';
+if ($num > 1)
+ echo _("Identities Defined");
+else
+ echo _("Identity Defined");
+?></p>
+<table width=100% cellpadding=0 cellspacing=2 border=0>
+ <tr bgcolor="<?PHP echo $color[9] ?>">
+ <th colspan=2 align=center><?PHP echo _("Default Identity") ?></th>
+ </tr>
+<?PHP
+
+ ShowTableInfo($full_name, $email_address, $reply_to, '');
+
+ $num = 1;
+ while (LoadInfo($full_name, $email_address, $reply_to, $num))
+ {
+?>
+ <tr bgcolor="<?PHP echo $color[9] ?>">
+ <th colspan=2 align=center><?PHP printf (_("Alternate Identity %d"),
+ $num) ?></th>
+ </tr>
+<?PHP
+ ShowTableInfo($full_name, $email_address, $reply_to, $num);
+ $num ++;
+ }
+
+?>
+ <tr bgcolor="<?PHP echo $color[9] ?>">
+ <th colspan=2 align=center><?PHP echo _("Add a New Identity") ?></th>
+ </tr>
+<?
+
+ ShowTableInfo('', '', '', $num);
+?>
+</table>
+</form>
+</body></html>
+<?PHP
+
+function SaveUpdateFunction()
+{
+ global $username, $data_dir, $full_name, $email_address, $reply_to;
+
+ $i = 1;
+ $fakeI = 1;
+ $name = 'form_for_' . $i;
+ global $$name;
+ while (isset($$name))
+ {
+ $name = 'delete_' . $i;
+ global $$name;
+ if (isset($$name)) {
+ $fakeI --;
+ } else {
+ $filled = 0;
+
+ $name = 'full_name' . $i;
+ global $$name;
+ if ($$name != '')
+ $filled ++;
+ setPref($data_dir, $username, 'full_name' . $fakeI, $$name);
+
+ $name = 'email_address' . $i;
+ global $$name;
+ if ($$name != '')
+ $filled ++;
+ setPref($data_dir, $username, 'email_address' . $fakeI, $$name);
+
+ $name = 'reply_to' . $i;
+ global $$name;
+ if ($$name != '')
+ $filled ++;
+ setPref($data_dir, $username, 'reply_to' . $fakeI, $$name);
+
+ if ($filled == 0)
+ $fakeI --;
+ }
+
+ $fakeI ++;
+ $i ++;
+ $name = 'form_for_' . $i;
+ global $$name;
+ }
+
+ setPref($data_dir, $username, 'identities', $fakeI);
+
+ while ($fakeI != $i)
+ {
+ removePref($data_dir, $username, 'full_name' . $fakeI);
+ removePref($data_dir, $username, 'email_address' . $fakeI);
+ removePref($data_dir, $username, 'reply_to' . $fakeI);
+ $fakeI ++;
+ }
+
+ setPref($data_dir, $username, 'full_name', $full_name);
+ setPref($data_dir, $username, 'email_address', $email_address);
+ setPref($data_dir, $username, 'reply_to', $reply_to);
+}
+
+function CheckAndDoDefault()
+{
+ global $username, $data_dir, $full_name, $email_address, $reply_to;
+
+ $i = 1;
+ $name = 'form_for_' . $i;
+ global $$name;
+ while (isset($$name))
+ {
+ $name = 'make_default_' . $i;
+ global $$name;
+ if (isset($$name)) {
+ global $full_name, $email_address, $reply_to;
+
+ $name = 'full_name' . $i;
+ global $$name;
+ $temp = $full_name;
+ $full_name = $$name;
+ $$name = $temp;
+
+ $name = 'email_address' . $i;
+ global $$name;
+ $temp = $email_address;
+ $email_address = $$name;
+ $$name = $temp;
+
+ $name = 'reply_to' . $i;
+ global $$name;
+ $temp = $reply_to;
+ $reply_to = $$name;
+ $$name = $temp;
+
+ return true;
+ }
+
+ $i ++;
+ $name = 'form_for_' . $i;
+ global $$name;
+ }
+ return false;
+}
+
+function CheckAndDoPromote()
+{
+ global $username, $data_dir, $full_name, $email_address, $reply_to;
+
+ $i = 1;
+ $name = 'form_for_' . $i;
+ global $$name;
+ while (isset($$name))
+ {
+ $name = 'promote_' . $i;
+ global $$name;
+ if (isset($$name) && $i > 1) {
+ $nameA = 'full_name' . $i;
+ $nameB = 'full_name' . ($i - 1);
+ global $$nameA, $$nameB;
+ $temp = $$nameA;
+ $$nameA = $$nameB;
+ $$nameB = $temp;
+
+ $nameA = 'email_address' . $i;
+ $nameB = 'email_address' . ($i - 1);
+ global $$nameA, $$nameB;
+ $temp = $$nameA;
+ $$nameA = $$nameB;
+ $$nameB = $temp;
+
+ $nameA = 'email_address' . $i;
+ $nameB = 'email_address' . ($i - 1);
+ global $$nameA, $$nameB;
+ $temp = $$nameA;
+ $$nameA = $$nameB;
+ $$nameB = $temp;
+
+ return true;
+ }
+
+ $i ++;
+ $name = 'form_for_' . $i;
+ global $$name;
+ }
+ return false;
+}
+
+function LoadInfo(&$n, &$e, &$r, $post)
+{
+ global $username, $data_dir;
+
+ $n = getPref($data_dir, $username, 'full_name' . $post);
+ $e = getPref($data_dir, $username, 'email_address' . $post);
+ $r = getPref($data_dir, $username, 'reply_to' . $post);
+
+ if ($n != '' || $e != '' || $r != '')
+ return true;
+}
+
+function ShowTableInfo($full_name, $email_address, $reply_to, $post)
+{
+ global $color;
+
+ $OtherBG = '';
+
+ if ($post == '')
+ $OtherBG = ' bgcolor="' . $color[10] . '"';
+
+ if ($full_name == '' && $email_address == '' && $reply_to == '')
+ $isEmptySection = true;
+ else
+ $isEmptySection = false;
+
+?>
+ <tr<?PHP echo $OtherBG ?>>
+ <td align=right nowrap>
+ <?php echo _("Full Name"); ?>:
+ </td>
+ <td>
+ <input size=50 type=text value="<?php echo htmlspecialchars($full_name)
+ ?>" name="full_name<?PHP echo $post ?>">
+ </td>
+ </tr>
+ <tr<?PHP echo $OtherBG ?>>
+ <td align=right nowrap>
+ <?php echo _("E-Mail Address"); ?>:
+ </td>
+ <td>
+ <input size=50 type=text value="<?php echo htmlspecialchars($email_address)
+ ?>" name="email_address<?PHP echo $post ?>">
+ </td>
+ </tr>
+ <tr<?PHP echo $OtherBG ?>>
+ <td align=right nowrap>
+ <?php echo _("Reply To"); ?>:
+ </td>
+ <td>
+ <input size=50 type=text value="<?php echo htmlspecialchars($reply_to)
+ ?>" name="reply_to<?PHP echo $post ?>">
+ </td>
+ </tr>
+<?PHP
+ if (! $isEmptySection && $post != '') {
+?>
+ <tr>
+ <td align=right>
+ <?PHP echo _("Delete") ?>:
+ </td>
+ <td>
+ <input type=checkbox name="delete_<?PHP echo $post ?>"> <?PHP
+ echo _("Delete this identity"); ?>
+ </td>
+ </tr>
+<?PHP
+ }
+?>
+ <tr>
+ <td colspan=2 align=center>
+ <input type=hidden name="form_for_<?PHP echo $post ?>" value="1">
+ <input type=submit name="update" value="<?PHP
+ echo _("Save / Update") ?>">
+<?PHP
+ if (! $isEmptySection && $post != '') {
+?>
+ <input type=submit name="make_default_<?PHP echo $post ?>" value="<?PHP
+ echo _("Make Default") ?>">
+<?PHP
+ }
+ if (! $isEmptySection && $post != '' && $post > 1) {
+?>
+ <input type=submit name="promote_<?PHP echo $post ?>" value="<?PHP
+ echo _("Move Up") ?>">
+<?PHP
+ }
+?>
+ </td>
+ </tr>
+<?PHP
+}
<input size=50 type=text value="<?php echo $replyto ?>" name=reply_to>
</td>
</tr>
+ <tr>
+ <td align=right nowrap><?PHP echo _("Multiple Identities"); ?>:
+ </td><td>
+ <a href="options_identities.php">Edit Advanced Identities</a>
+ (discards changes made on this form so far)
+ </td>
+ </tr>
+ <tr><td colspan=2><hr size=1 width=80%></td></tr>
<tr>
<td align=right nowrap valign=top><br><?php echo _("Signature"); ?>:
</td><td>