- $mime_header = $message->mime_header;
- $rn="\r\n";
- $header = array();
-
- $contenttype = 'Content-Type: '. $mime_header->type0 .'/'.
- $mime_header->type1;
- if (count($message->entities)) {
- $contenttype .= ";\r\n " . 'boundary="'.$boundary.'"';
- }
- if (isset($mime_header->parameters['name'])) {
- $contenttype .= ";\r\n " . 'name="'.
- encodeHeader($mime_header->parameters['name']). '"';
- }
- $header[] = $contenttype . $rn;
- if ($mime_header->description) {
- $header[] .= 'Content-Description: ' . $mime_header->description . $rn;
- }
- if ($mime_header->encoding) {
- $header[] .= 'Content-Transfer-Encoding: ' . $mime_header->encoding . $rn;
- }
- if ($mime_header->id) {
- $header[] .= 'Content-ID: ' . $mime_header->id . $rn;
- }
- if ($mime_header->disposition) {
- $contentdisp .= 'Content-Disposition: ' . $mime_header->disposition;
- if (isset($mime_header->parameters['filename'])) {
- $contentdisp .= ";\r\n " . 'filename="'.
- encodeHeader($mime_header->parameters['filename']). '"';
- }
- $header[] = $contentdisp . $rn;
- }
- if ($mime_header->md5) {
- $header[] .= 'Content-MD5: ' . $mime_header->md5 . $rn;
- }
- if ($mime_header->language) {
- $header[] .= 'Content-Language: ' . $mime_header->language . $rn;
- }
-
- $cnt = count($header);
- $hdr_s = '';
- for ($i = 0 ; $i < $cnt ; $i++) {
- $hdr_s .= $this->foldLine($header[$i], 78, ' ');
- }
- $header = $hdr_s;
- $header .= $rn; /* One blank line to separate mimeheader and body-entity */
- return $header;
- }
-
- function prepareRFC822_Header($rfc822_header) {
- global $REMOTE_ADDR, $SERVER_NAME, $REMOTE_PORT;
- global $version, $useSendmail, $username;
- global $HTTP_VIA, $HTTP_X_FORWARDED_FOR;
- global $REMOTE_HOST;
- $rn = "\r\n";
- /* This creates an RFC 822 date */
- $date = date("D, j M Y H:i:s ", mktime()) . $this->timezone();
- /* Create a message-id */
- $message_id = '<' . $REMOTE_PORT . '.' . $REMOTE_ADDR . '.';
- $message_id .= time() . '.squirrel@' . $SERVER_NAME .'>';
- $old_message_id = $rfc822_header->message_id;
- /* Make an RFC822 Received: line */
- if (isset($REMOTE_HOST)) {
- $received_from = "$REMOTE_HOST ([$REMOTE_ADDR])";
- } else {
- $received_from = $REMOTE_ADDR;
- }
- if (isset($HTTP_VIA) || isset ($HTTP_X_FORWARDED_FOR)) {
- if ($HTTP_X_FORWARDED_FOR == '') {
- $HTTP_X_FORWARDED_FOR = 'unknown';
- }
- $received_from .= " (proxying for $HTTP_X_FORWARDED_FOR)";
- }
- $header = array();
- $header[] = "Received: from $received_from" . $rn;
- $header[] = " (SquirrelMail authenticated user $username)" . $rn;
- $header[] = " by $SERVER_NAME with HTTP;" . $rn;
- $header[] = " $date" . $rn;
+ $mime_header = $message->mime_header;
+ $rn="\r\n";
+ $header = array();
+
+ $contenttype = 'Content-Type: '. $mime_header->type0 .'/'.
+ $mime_header->type1;
+ if (count($message->entities)) {
+ $contenttype .= ";\r\n " . 'boundary="'.$boundary.'"';
+ }
+ if (isset($mime_header->parameters['name'])) {
+ $contenttype .= '; name="'.
+ encodeHeader($mime_header->parameters['name']). '"';
+ }
+ if (isset($mime_header->parameters['charset'])) {
+ $charset = $mime_header->parameters['charset'];
+ $contenttype .= '; charset="'.
+ encodeHeader($charset). '"';
+ }
+
+ $header[] = $contenttype . $rn;
+ if ($mime_header->description) {
+ $header[] .= 'Content-Description: ' . $mime_header->description . $rn;
+ }
+ if ($mime_header->encoding) {
+ $header[] .= 'Content-Transfer-Encoding: ' . $mime_header->encoding . $rn;
+ } else {
+ if ($mime_header->type0 == 'text' || $mime_header->type0 == 'message') {
+ $header[] .= 'Content-Transfer-Encoding: 8bit' . $rn;
+ } else {
+ $header[] .= 'Content-Transfer-Encoding: base64' . $rn;
+ }
+ }
+ if ($mime_header->id) {
+ $header[] .= 'Content-ID: ' . $mime_header->id . $rn;
+ }
+ if ($mime_header->disposition) {
+ $disposition = $mime_header->disposition;
+ $contentdisp = 'Content-Disposition: ' . $disposition->name;
+ if ($disposition->getProperty('filename')) {
+ $contentdisp .= '; filename="'.
+ encodeHeader($disposition->getProperty('filename')). '"';
+ }
+ $header[] = $contentdisp . $rn;
+ }
+ if ($mime_header->md5) {
+ $header[] .= 'Content-MD5: ' . $mime_header->md5 . $rn;
+ }
+ if ($mime_header->language) {
+ $header[] .= 'Content-Language: ' . $mime_header->language . $rn;
+ }
+
+ $cnt = count($header);
+ $hdr_s = '';
+ for ($i = 0 ; $i < $cnt ; $i++) {
+ $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 - prepares the RFC822 header string from Rfc822Header object(s)
+ *
+ * This function takes the Rfc822Header object(s) and formats them
+ * into the RFC822Header string to send to the SMTP server as part
+ * of the SMTP message.
+ *
+ * @param Rfc822Header $rfc822_header
+ * @param Rfc822Header $reply_rfc822_header
+ * @param integer &$raw_length length of the message
+ *
+ * @return string $header
+ */
+ function prepareRFC822_Header($rfc822_header, $reply_rfc822_header, &$raw_length) {
+ global $domain, $version, $username, $skip_SM_header;
+
+ /* if server var SERVER_NAME not available, use $domain */
+ if(!sqGetGlobalVar('SERVER_NAME', $SERVER_NAME, SQ_SERVER)) {
+ $SERVER_NAME = $domain;
+ }
+
+ sqGetGlobalVar('REMOTE_ADDR', $REMOTE_ADDR, SQ_SERVER);
+ sqGetGlobalVar('REMOTE_PORT', $REMOTE_PORT, SQ_SERVER);
+ sqGetGlobalVar('REMOTE_HOST', $REMOTE_HOST, SQ_SERVER);
+ sqGetGlobalVar('HTTP_VIA', $HTTP_VIA, SQ_SERVER);
+ sqGetGlobalVar('HTTP_X_FORWARDED_FOR', $HTTP_X_FORWARDED_FOR, SQ_SERVER);
+
+ $rn = "\r\n";
+
+ /* This creates an RFC 822 date */
+ $date = date('D, j M Y H:i:s ', mktime()) . $this->timezone();
+ /* Create a message-id */
+ $message_id = '<' . $REMOTE_PORT . '.' . $REMOTE_ADDR . '.';
+ $message_id .= time() . '.squirrel@' . $SERVER_NAME .'>';
+ /* Make an RFC822 Received: line */
+ if (isset($REMOTE_HOST)) {
+ $received_from = "$REMOTE_HOST ([$REMOTE_ADDR])";
+ } else {
+ $received_from = $REMOTE_ADDR;
+ }
+ if (isset($HTTP_VIA) || isset ($HTTP_X_FORWARDED_FOR)) {
+ if (!isset($HTTP_X_FORWARDED_FOR) || $HTTP_X_FORWARDED_FOR == '') {
+ $HTTP_X_FORWARDED_FOR = 'unknown';
+ }
+ $received_from .= " (proxying for $HTTP_X_FORWARDED_FOR)";
+ }
+ $header = array();
+ if ( !isset($skip_SM_header) || !$skip_SM_header )
+ {
+ $header[] = "Received: from $received_from" . $rn;
+ $header[] = " (SquirrelMail authenticated user $username)" . $rn;
+ $header[] = " by $SERVER_NAME with HTTP;" . $rn;
+ $header[] = " $date" . $rn;
+ }