X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=src%2Fread_body.php;h=95368c107000c8b5b5b1acea2ff97c20768e9887;hb=541506f3bbe3cfc966221c55c35e50e9bda6f181;hp=28733de08ed9055196ef583c9a9d064b04049c01;hpb=97876814d7f47f9ea38c1cd97cb8bd73191fa9c4;p=squirrelmail.git diff --git a/src/read_body.php b/src/read_body.php index 28733de0..95368c10 100644 --- a/src/read_body.php +++ b/src/read_body.php @@ -160,9 +160,11 @@ /** translate the subject and mailbox into url-able text **/ $url_subj = urlencode(trim($message->header->subject)); $urlMailbox = urlencode($mailbox); - $url_replyto = urlencode($message->header->replyto); + $url_replyto = ''; + if (isset($message->header->replyto)) + $url_replyto = urlencode($message->header->replyto); - $url_replytoall = urlencode($message->header->replyto); + $url_replytoall = $url_replyto; // If we are replying to all, then find all other addresses and // add them to the list. Remove duplicates. @@ -183,25 +185,32 @@ array_keys(array_flip($url_replytoall_extra_addrs)); // 5) Remove the addresses we'll be sending the message 'to' - $url_replytoall_avoid_addrs = parseAddrs($message->header->replyto); + $url_replytoall_avoid_addrs = ''; + if (isset($message->header->replyto)) + $url_replytoall_avoid_addrs = $message->header->replyto; + $url_replytoall_avoid_addrs = parseAddrs($url_replytoall_avoid_addrs); foreach ($url_replytoall_avoid_addrs as $addr) { RemoveAddress($url_replytoall_extra_addrs, $addr); } // 6) Remove our identities from the CC list (they still can be in the - // TO list) - RemoveAddress($url_replytoall_extra_addrs, getPref($data_dir, $username, - 'email_address')); - $idents = getPref($data_dir, $username, 'identities'); - if ($idents != '' && $idents > 1) + // TO list) only if $include_self_reply_all isn't set or it is ''. + if (getPref($data_dir, $username, 'include_self_reply_all') == '') { - for ($i = 1; $i < $idents; $i ++) + RemoveAddress($url_replytoall_extra_addrs, + getPref($data_dir, $username, 'email_address')); + $idents = getPref($data_dir, $username, 'identities'); + if ($idents != '' && $idents > 1) { - RemoveAddress($url_replytoall_extra_addrs, - getPref($data_dir, $username, 'email_address' . $i)); + for ($i = 1; $i < $idents; $i ++) + { + RemoveAddress($url_replytoall_extra_addrs, + getPref($data_dir, $username, 'email_address' . + $i)); + } } - } + } // 7) Smoosh back into one nice line $url_replytoallcc = getLineOfAddrs($url_replytoall_extra_addrs);