- 论坛徽章:
- 0
|
修改include/send_fun.php
修改send()函数如下:
- /*******************************************************************************
- Function: send()
- Description: sends the email
- Arguments: none
- Returns: true if sent
- *******************************************************************************/
- function send($SaveTo,$Path){
- global $CFG_GMT, $REMOTE_ADDR, $G_NICKNAME;
-
- $subject = encode_mime($this->;mailSubject,$this->;Encoding,$this->;Charset);
-
- $FromName = encode_mime($this->;mailFromname,$this->;Encoding,$this->;Charset);
- $FromEmail = "\"".$FromName."\" <".$this->;mailFrom.">;";
- $mailHeader = "";
- $mailHeader .= "Return-Path: <".$this->;mailFrom.">;\n";
- if($this->;mailCC != "") $mailHeader .= "Cc: ".$this->;mailCC. "\n";
- if($this->;mailBCC != "") $mailHeader .= "Bcc: ".$this->;mailBCC. "\n";
- $mailHeader .="Subject:".$subject."\n";
- if($this->;mailFrom != "") $mailHeader .= "From: ".$FromEmail. "\n";
- $mailHeader .= "Date: " . $this->;setDate($CFG_GMT) ."\n";
- if($this->;mailPriority != "") $mailHeader .= "X-Priority: ".$this->;mailPriority. "\n";
- $mailHeader .= "X-Mailer: iGENUS webmail 3.0\n";
- $mailHeader .= "X-Originating-IP: [$REMOTE_ADDR]\n";
- //---------------------------MESSAGE TYPE-------------------------------
- // Without-Attachment
- if($this->;mailAttachments==""){
- //--TEXT ONLY
- if( $this->;mailText!="" && $this->;mailHTML==""){
- $textHeader = $this->;formatTextHeader();
- $mailHeader .= $textHeader;
- }
- //--HTML ONLY
- if($this->;mailText=="" && $this->;mailHTML!=""){
- $htmlHeader = $this->;formatHTMLHeader();
- $mailHeader .= $htmlHeader;
- }
- if($this->;mailText!="" && $this->;mailHTML!=""){
- //--get random boundary for content types
- $bodyBoundary = $this->;getRandomBoundary();
- //--format headers
- $textHeader = $this->;formatTextHeader();
- $htmlHeader = $this->;formatHTMLHeader();
- //--set MIME-Version
- $mailHeader .= "MIME-Version: 1.0\n";
- //--set up main content header with boundary
- $mailHeader .= "Content-Type: multipart/alternative;\n";
- $mailHeader .= "\tboundary=\"$bodyBoundary\"";
- $mailHeader .= "\n\n";
- //--add body and boundaries
- $mailHeader .= "--".$bodyBoundary. "\n";
- $mailHeader .= $textHeader;
- $mailHeader .= "\n--".$bodyBoundary. "\n";
- //--add html and ending boundary
- $mailHeader .= $htmlHeader;
- $mailHeader .= "\n--".$bodyBoundary. "--";
-
- }
- // With Attachment
- }else {
- //--get random boundary for attachments
- $attachmentBoundary = $this->;getRandomBoundary();
- //--set main header for all parts and boundary
- $mailHeader .= "MIME-Version: 1.0\n";
- $mailHeader .= "Content-Type: multipart/mixed;\n";
- $mailHeader .= ' boundary="'.$attachmentBoundary. '"'. "\n\n";
- $mailHeader .= "This is a multi-part message in MIME format.\n\n";
- $mailHeader .= "--".$attachmentBoundary. "\n";
-
- //--TEXT ONLY
- if( $this->;mailText!="" && $this->;mailHTML==""){
- $textHeader = $this->;formatTextHeader();
- $mailHeader .= $textHeader;
- }
- //--HTML ONLY
- if($this->;mailText=="" && $this->;mailHTML!=""){
- $htmlHeader = $this->;formatHTMLHeader();
- $mailHeader .= $htmlHeader;
- }
-
- if($this->;mailText!="" && $this->;mailHTML!=""){
- //--TEXT AND HTML--
- //--get random boundary for content types
- $bodyBoundary = $this->;getRandomBoundary(1);
- //--format headers
- $textHeader = $this->;formatTextHeader();
- $htmlHeader = $this->;formatHTMLHeader();
- //--set up main content header with boundary
- $mailHeader .= "Content-Type: multipart/alternative;\n";
- $mailHeader .= "\tboundary=\"$bodyBoundary\"\n\n";
- //--add body and boundaries
- $mailHeader .= "--".$bodyBoundary. "\n";
- $mailHeader .= $textHeader."\n";
- $mailHeader .= "--".$bodyBoundary. "\n";
- //--add html and ending boundary
- $mailHeader .= $htmlHeader;
- $mailHeader .= "\n--".$bodyBoundary. "--\n";
- //--send message
- //--END TEXT AND HTML
- }
- //--get array of attachment filenames
- $attachmentArray = explode( ",",$this->;mailAttachments);
- //--loop through each attachment
- for($i=0;$i<count($attachmentArray);$i++){
- $mailHeader .= "\n--".$attachmentBoundary. "\n";
- $mailHeader .= $this->;formatAttachmentHeader($attachmentArray[$i]);
- }
- $mailHeader .= "--".$attachmentBoundary. "--";
- }
- if($SaveTo=='Backup'){
- ($FD_BACKUP = fopen($Path,"w")) || die("Error open $Path");
- $BackMeg = "To: ".$this->;mailTo."\n";
- $BackMeg .= "Subject: ".$subject."\n";
- $BackMeg .= $mailHeader;
- $Slen = strlen($BackMeg);
- fputs($FD_BACKUP,$BackMeg,$Slen);
- fclose($FD_BACKUP);
- return;
- }else{
- // return mail($this->;mailTo,$subject,"",$mailHeader);
- $connect = fsockopen ("localhost", 25, $errno, $errstr, 30) or die("Could not talk to the sendmail server!");
- $rcv = fgets($connect, 1024);
-
- fputs($connect, "HELO localhost\r\n");
- $rcv = fgets($connect, 1024);
- fputs($connect, "MAIL FROM:$this->;mailFrom\r\n");
- $rcv = fgets($connect, 1024);
-
- $addressArray=explode(",",$this->;mailTo);
- for($i=0;$i<count($addressArray);$i++){
- if($this->;checkEmail($addressArray[$i]));
- {
- fputs($connect, "RCPT TO:$addressArray[$i]\r\n");
- $rcv = fgets($connect, 1024);
- }
- }
-
- $addressArray=explode(",",$this->;mailCC);
- for($i=0;$i<count($addressArray);$i++){
- if($this->;checkEmail($addressArray[$i]));
- {
- fputs($connect, "RCPT TO:$addressArray[$i]\r\n");
- $rcv = fgets($connect, 1024);
- }
- }
-
- $addressArray=explode(",",$this->;mailBCC);
- for($i=0;$i<count($addressArray);$i++){
- if($this->;checkEmail($addressArray[$i]));
- {
- fputs($connect, "RCPT TO:$addressArray[$i]\r\n");
- $rcv = fgets($connect, 1024);
- }
- }
- fputs($connect, "DATA\r\n");
- $rcv = fgets($connect, 1024);
- fputs($connect, $mailHeader."\r\n");
- fputs($connect, ".\r\n");
- $rcv = fgets($connect, 1024);
- fputs($connect, "RSET\r\n");
- $rcv = fgets($connect, 1024);
- fputs ($connect, "QUIT\r\n");
- $rcv = fgets ($connect, 1024);
- fclose($connect);
- }
- }
复制代码
在freebsd+postfix环境下测试通过~~~~~~ |
|