From 75b14a704db6021200aafbfbae109d883731b2ca Mon Sep 17 00:00:00 2001 From: stekkel Date: Thu, 5 Sep 2002 09:25:44 +0000 Subject: [PATCH] xtra check for To addresses, if not available don't show the headerline. Fix for bcc addresses. the returned length should contain the length of the bcc-line because we want this information in the sent_folder. git-svn-id: https://svn.code.sf.net/p/squirrelmail/code/trunk/squirrelmail@3558 7612ce4b-ef26-0410-bec9-ea0150e637f0 --- class/deliver/Deliver.class.php | 26 ++++++++++++++++++-------- 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/class/deliver/Deliver.class.php b/class/deliver/Deliver.class.php index d60757fb..403506c6 100644 --- a/class/deliver/Deliver.class.php +++ b/class/deliver/Deliver.class.php @@ -22,10 +22,11 @@ class Deliver { } else { $boundary=''; } + $raw_length = 0; $reply_rfc822_header = (isset($message->reply_rfc822_header) ? $message->reply_rfc822_header : ''); - $header = $this->prepareRFC822_Header($rfc822_header, $reply_rfc822_header); - $raw_length = strlen($header); + $header = $this->prepareRFC822_Header($rfc822_header, $reply_rfc822_header, $raw_length); + if ($stream) { $this->preWriteToStream($header); $this->writeToStream($stream, $header); @@ -201,14 +202,14 @@ class Deliver { $cnt = count($header); $hdr_s = ''; for ($i = 0 ; $i < $cnt ; $i++) { - $hdr_s .= $this->foldLine($header[$i], 78, ' '); + $hdr_s .= $this->foldLine($header[$i], 78,str_pad('',4)); } $header = $hdr_s; $header .= $rn; /* One blank line to separate mimeheader and body-entity */ return $header; } - function prepareRFC822_Header($rfc822_header, $reply_rfc822_header) { + function prepareRFC822_Header($rfc822_header, $reply_rfc822_header, &$raw_length) { global $REMOTE_ADDR, $SERVER_NAME, $REMOTE_PORT; global $version, $useSendmail, $username; global $HTTP_VIA, $HTTP_X_FORWARDED_FOR; @@ -250,7 +251,9 @@ class Deliver { if (count($rfc822_header->from) > 1) { $header[] = 'Sender: '. encodeHeader($rfc822_header->getAddr_s('sender')) . $rn; } - $header[] = 'To: '. encodeHeader($rfc822_header->getAddr_s('to')) . $rn; // Who it's TO + if (count($rfc822_header->to)) { + $header[] = 'To: '. encodeHeader($rfc822_header->getAddr_s('to')) . $rn; + } if (count($rfc822_header->cc)) { $header[] = 'Cc: '. encodeHeader($rfc822_header->getAddr_s('cc')) . $rn; } @@ -259,8 +262,14 @@ class Deliver { } /* Sendmail should return true. Default = false */ $bcc = $this->getBcc(); - if ($bcc && count($rfc822_header->bcc)) { - $header[] = 'Bcc: '. encodeHeader($rfc822_header->getAddr_s('bcc')) . $rn; + if (count($rfc822_header->bcc)) { + $s = 'Bcc: '. encodeHeader($rfc822_header->getAddr_s('bcc')) . $rn; + if (!$bcc) { + $s = $this->foldLine($s, 78, str_pad('',4)); + $raw_length += strlen($s); + } else { + $header[] = $s; + } } /* Identify SquirrelMail */ $header[] = "X-Mailer: SquirrelMail (version $version)" . $rn; @@ -303,10 +312,11 @@ class Deliver { $cnt = count($header); $hdr_s = ''; for ($i = 0 ; $i < $cnt ; $i++) { - $hdr_s .= $this->foldLine($header[$i], 78, ' '); + $hdr_s .= $this->foldLine($header[$i], 78, str_pad('',4)); } $header = $hdr_s; $header .= $rn; /* One blank line to separate header and body */ + $raw_length += strlen($header); return $header; } -- 2.25.1