Index: trunk/kernel/include/emailmessage.php =================================================================== diff -u -r3515 -r3516 --- trunk/kernel/include/emailmessage.php (.../emailmessage.php) (revision 3515) +++ trunk/kernel/include/emailmessage.php (.../emailmessage.php) (revision 3516) @@ -656,12 +656,17 @@ var $SourceTable; var $MessagesAtOnce; var $MessagesSent=0; - var $LogLevel = 0; + var $LogLevel = 0; + var $HLB = "\n"; // Headers Line Break + var $BLB = "\n"; // Body Line Break function clsEmailQueue($SourceTable=NULL,$MessagesAtOnce=NULL) { global $objConfig; + $this->HLB = chr(10); + $this->BLB = chr(10); + if($SourceTable) { $this->SourceTable=$SourceTable; @@ -727,19 +732,20 @@ /* $sql = "INSERT INTO ".GetTablePrefix()."EmailLog VALUES ('', '".htmlspecialchars($From)."', '".htmlspecialchars($To)."', '$Subject', $time, '')"; $conn->Execute($sql);*/ - /* ensure headers are using \n instead of \n */ + $headers = "Date: ".adodb_date("r")."\n".$headers; $headers = "Return-Path: ".$objConfig->Get("Smtp_AdminMailFrom")."\n".$headers; + /* ensure headers are using \r\n instead of \n */ $headers = str_replace("\n\n","\r\n\r\n",$headers); $headers = str_replace("\r\n","\n",$headers); - //$headers = str_replace("\n","\r\n",$headers); + $headers = str_replace("\n","\r\n",$headers); // if (strtoupper(substr(PHP_OS, 0, 3) == 'WIN')) { $Msg = str_replace("\n\n","\r\n\r\n",$Msg); $Msg = str_replace("\r\n","\n",$Msg); - //$Msg = str_replace("\n","\r\n",$Msg); + $Msg = str_replace("\n","\r\n",$Msg); // } //echo "
"; print_r(htmlentities($headers)); echo "
"; @@ -752,11 +758,11 @@ return mail($To,trim($Subject),$Msg, $headers); } - $headers = "Subject: ".trim($Subject)."\n".$headers; + $headers = "Subject: ".trim($Subject)."\r\n".$headers; $send_params['recipients'] = array($To); // The recipients (can be multiple) $send_params['from'] = $From; // This is used as in the MAIL FROM: cmd - $send_params['headers'] = explode("\n",$headers); + $send_params['headers'] = explode("\r\n",$headers); // It should end up as the Return-Path: header $send_params['body'] = $Msg; // The body of the email @@ -879,7 +885,7 @@ $OB="----=_OuterBoundary_000".md5( uniqid (rand())); $boundary = "-----=".md5( uniqid (rand())); $f = "\"$FromName\" <".$From.">"; - $headers = "From: $f\n"; + $headers = "From: $f"."\n"; if(strlen($ToName)>0) { $To = "\"$ToName\" <$ToAddr>"; @@ -888,8 +894,8 @@ $To = "<".$ToAddr.">"; } - $headers.="To: $To\n"; - $headers .= "MIME-Version: 1.0\n"; + $headers.="To: $To"."\n"; + $headers .= "MIME-Version: 1.0"."\n"; $conn = &GetADODBConnection(); $time = adodb_mktime(); @@ -906,16 +912,16 @@ $sql = "INSERT INTO ".GetTablePrefix()."EmailLog VALUES ('', ".$conn->qstr($FromName).", ".$conn->qstr($sendTo).", ".$conn->qstr( str_replace("Subject:", "", $Subject) ).", $time, '$SendEvent')"; $conn->Execute($sql); - $msg .="This is a multi-part message in MIME format.\n\n"; + $msg .="This is a multi-part message in MIME format."."\n"."\n"; if($HasFile) { //Messages start with text/html alternatives in OB - $headers.="Content-Type: multipart/mixed;\n\tboundary=\"".$OB."\"\n\n"; + $headers.="Content-Type: multipart/mixed;"."\n"."\tboundary=\"".$OB."\""."\n"."\n"; $msg.="--".$OB."\n"; - $msg.="Content-Type: multipart/alternative; boundary=\"$boundary\"\n\n\n"; + $msg.="Content-Type: multipart/alternative; boundary=\"$boundary\""."\n"."\n"."\n"; } else { - $headers .= "Content-Type: multipart/alternative; boundary=\"$boundary\"\n"; + $headers .= "Content-Type: multipart/alternative; boundary=\"$boundary\""."\n"; } if(is_array($extra_headers)) { @@ -931,30 +937,30 @@ } $msg .= "--" . $boundary . "\n"; - $msg .= "Content-Type: text/plain; charset=\"$charset\"\n"; - $msg .= "Content-Transfer-Encoding: 8bit\n\n"; + $msg .= "Content-Type: text/plain; charset=\"$charset\""."\n"; + $msg .= "Content-Transfer-Encoding: 8bit"."\n"."\n"; $msg .= stripslashes($Text); - $msg .= "\n\n"; + $msg .= "\n"."\n"; if(strlen($Html)>0) { $msg .= "--" . $boundary . "\n"; - $msg .= "Content-Type: text/html; charset=\"iso-8859-1\"\n"; - $msg .= "Content-Transfer-Encoding: 8bit\n\n"; + $msg .= "Content-Type: text/html; charset=\"iso-8859-1\""."\n"; + $msg .= "Content-Transfer-Encoding: 8bit"."\n"."\n"; $msg .= stripslashes($Html); - $msg .= "\n\n"; + $msg .= "\n"."\n"; } - $msg .= "--" . $boundary . "--\n"; + $msg .= "--" . $boundary . "--"."\n"; if($HasFile) { if(!strlen($FileLoc)) { $FileLoc = $FileName; } $FileName = basename($FileName); - $msg .= "\n--".$OB."\n"; - $msg.="Content-Type: application/octetstream;\n\tname=\"".$FileName."\"\n"; - $msg.="Content-Transfer-Encoding: base64\n"; - $msg.="Content-Disposition: attachment;\n\tfilename=\"".$FileName."\"\n\n"; + $msg .= "\n"."--".$OB."\n"; + $msg.="Content-Type: application/octetstream;"."\n"."\tname=\"".$FileName."\""."\n"; + $msg.="Content-Transfer-Encoding: base64"."\n"; + $msg.="Content-Disposition: attachment;"."\n"."\tfilename=\"".$FileName."\""."\n"."\n"; //file goes here $fd=fopen ($FileLoc, "r"); @@ -965,7 +971,7 @@ } $FileContent=chunk_split(base64_encode($FileContent)); $msg .= $FileContent."\n"; - $msg .= "--".$OB."--\n"; + $msg .= "--".$OB."--"."\n"; } if($this->MessagesSent>$this->MessagesAtOnce || $QueueOnly==1)