免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2741 | 回复: 3
打印 上一主题 下一主题

[Mail] [原创]解决postfix环境下igenus的Return-Path问题(使用smtp) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-01-11 18:00 |只看该作者 |倒序浏览
修改include/send_fun.php
修改send()函数如下:

  1. /*******************************************************************************
  2.          Function:                        send()
  3.          Description:          sends the        email
  4.          Arguments:                         none
  5.          Returns:                  true if sent
  6. *******************************************************************************/
  7.          function send($SaveTo,$Path){
  8.                    global $CFG_GMT, $REMOTE_ADDR, $G_NICKNAME;
  9.                    
  10.                     $subject = encode_mime($this->;mailSubject,$this->;Encoding,$this->;Charset);
  11.              
  12.                   $FromName = encode_mime($this->;mailFromname,$this->;Encoding,$this->;Charset);
  13.                   $FromEmail = "\"".$FromName."\" <".$this->;mailFrom.">;";

  14.                   $mailHeader =  "";
  15.                   $mailHeader .=  "Return-Path: <".$this->;mailFrom.">;\n";
  16.                   if($this->;mailCC != "")                $mailHeader        .= "Cc: ".$this->;mailCC. "\n";
  17.                   if($this->;mailBCC != "")                $mailHeader .= "Bcc: ".$this->;mailBCC. "\n";
  18.                   $mailHeader .="Subject:".$subject."\n";
  19.                   if($this->;mailFrom != "")                $mailHeader .= "From: ".$FromEmail. "\n";
  20.                   $mailHeader .= "Date: " . $this->;setDate($CFG_GMT) ."\n";
  21.                   if($this->;mailPriority != "")        $mailHeader .= "X-Priority: ".$this->;mailPriority. "\n";
  22.                   $mailHeader .= "X-Mailer: iGENUS webmail 3.0\n";
  23.                   $mailHeader .= "X-Originating-IP: [$REMOTE_ADDR]\n";

  24.                         //---------------------------MESSAGE TYPE-------------------------------
  25.                 // Without-Attachment
  26.                 if($this->;mailAttachments==""){
  27.                         //--TEXT        ONLY
  28.                   if( $this->;mailText!="" && $this->;mailHTML==""){
  29.                                 $textHeader        = $this->;formatTextHeader();
  30.                                 $mailHeader .= $textHeader;
  31.                   }
  32.                         //--HTML        ONLY
  33.                   if($this->;mailText=="" && $this->;mailHTML!=""){
  34.                                 $htmlHeader        = $this->;formatHTMLHeader();
  35.                                 $mailHeader .= $htmlHeader;
  36.                   }
  37.                   if($this->;mailText!="" && $this->;mailHTML!=""){
  38.                                  //--get        random boundary for content types
  39.                                 $bodyBoundary = $this->;getRandomBoundary();
  40.                                  //--format        headers
  41.                                 $textHeader        = $this->;formatTextHeader();
  42.                                 $htmlHeader        = $this->;formatHTMLHeader();
  43.                                  //--set        MIME-Version
  44.                                 $mailHeader        .=         "MIME-Version: 1.0\n";
  45.                                  //--set        up        main content header with boundary
  46.                                 $mailHeader        .=         "Content-Type: multipart/alternative;\n";
  47.                                 $mailHeader        .=         "\tboundary=\"$bodyBoundary\"";
  48.                                 $mailHeader        .=         "\n\n";
  49.                                  //--add        body and        boundaries
  50.                                 $mailHeader        .=         "--".$bodyBoundary.        "\n";
  51.                                 $mailHeader        .=        $textHeader;
  52.                                 $mailHeader        .=         "\n--".$bodyBoundary.        "\n";
  53.                                  //--add        html and        ending boundary
  54.                                 $mailHeader        .=        $htmlHeader;
  55.                                 $mailHeader        .=         "\n--".$bodyBoundary. "--";
  56.                                
  57.                   }
  58.                  // With Attachment
  59.                 }else {
  60.                          //--get        random boundary for attachments
  61.                         $attachmentBoundary = $this->;getRandomBoundary();
  62.                          //--set        main header        for all parts and        boundary
  63.                         $mailHeader        .=         "MIME-Version: 1.0\n";
  64.                         $mailHeader        .=         "Content-Type: multipart/mixed;\n";
  65.                         $mailHeader        .=         '        boundary="'.$attachmentBoundary.        '"'. "\n\n";
  66.                         $mailHeader        .=         "This is a multi-part message in MIME format.\n\n";
  67.                         $mailHeader        .=         "--".$attachmentBoundary.        "\n";                         
  68.                
  69.                         //--TEXT        ONLY
  70.                   if( $this->;mailText!="" && $this->;mailHTML==""){
  71.                                 $textHeader        = $this->;formatTextHeader();
  72.                                 $mailHeader        .=        $textHeader;
  73.                   }
  74.                         //--HTML        ONLY
  75.                   if($this->;mailText=="" && $this->;mailHTML!=""){
  76.                                 $htmlHeader        = $this->;formatHTMLHeader();
  77.                                 $mailHeader        .=        $htmlHeader;
  78.                   }
  79.                   
  80.                   if($this->;mailText!="" && $this->;mailHTML!=""){
  81.                                  //--TEXT AND HTML--
  82.                                  //--get        random boundary for content types
  83.                                 $bodyBoundary = $this->;getRandomBoundary(1);
  84.                                  //--format        headers
  85.                                 $textHeader        = $this->;formatTextHeader();
  86.                                 $htmlHeader        = $this->;formatHTMLHeader();
  87.                                  //--set        up        main content header with boundary
  88.                                 $mailHeader        .=         "Content-Type: multipart/alternative;\n";
  89.                                 $mailHeader        .=         "\tboundary=\"$bodyBoundary\"\n\n";

  90.                                  //--add        body and        boundaries
  91.                                 $mailHeader        .=         "--".$bodyBoundary.        "\n";
  92.                                 $mailHeader        .=        $textHeader."\n";
  93.                                 $mailHeader        .=         "--".$bodyBoundary.        "\n";
  94.                                  //--add        html and        ending boundary
  95.                                 $mailHeader        .=        $htmlHeader;
  96.                                 $mailHeader        .=         "\n--".$bodyBoundary. "--\n";
  97.                                  //--send message
  98.                                  //--END        TEXT AND        HTML
  99.                         }
  100.                  //--get        array        of        attachment filenames
  101.                         $attachmentArray = explode( ",",$this->;mailAttachments);
  102.                  //--loop through        each attachment
  103.                         for($i=0;$i<count($attachmentArray);$i++){
  104.                                  $mailHeader .=  "\n--".$attachmentBoundary.        "\n";
  105.                                  $mailHeader .= $this->;formatAttachmentHeader($attachmentArray[$i]);
  106.                         }
  107.                 $mailHeader        .=         "--".$attachmentBoundary.        "--";
  108.                 }
  109.                 if($SaveTo=='Backup'){
  110.                         ($FD_BACKUP = fopen($Path,"w")) || die("Error open $Path");
  111.                                 $BackMeg = "To: ".$this->;mailTo."\n";
  112.                                 $BackMeg .= "Subject: ".$subject."\n";
  113.                                 $BackMeg .= $mailHeader;
  114.                                 $Slen = strlen($BackMeg);
  115.                                 fputs($FD_BACKUP,$BackMeg,$Slen);
  116.                         fclose($FD_BACKUP);
  117.                         return;
  118.                 }else{
  119. //                        return mail($this->;mailTo,$subject,"",$mailHeader);
  120.                         $connect = fsockopen ("localhost", 25, $errno, $errstr, 30) or die("Could not talk to the sendmail server!");
  121.                         $rcv = fgets($connect, 1024);
  122.                        
  123.                         fputs($connect, "HELO localhost\r\n");
  124.                         $rcv = fgets($connect, 1024);

  125.                         fputs($connect, "MAIL FROM:$this->;mailFrom\r\n");
  126.                         $rcv = fgets($connect, 1024);
  127.                        
  128.                         $addressArray=explode(",",$this->;mailTo);
  129.                         for($i=0;$i<count($addressArray);$i++){
  130.                                 if($this->;checkEmail($addressArray[$i]));
  131.                                 {
  132.                                         fputs($connect, "RCPT TO:$addressArray[$i]\r\n");
  133.                                         $rcv = fgets($connect, 1024);
  134.                                 }
  135.                         }                       
  136.                        
  137.                         $addressArray=explode(",",$this->;mailCC);
  138.                         for($i=0;$i<count($addressArray);$i++){
  139.                                 if($this->;checkEmail($addressArray[$i]));
  140.                                 {
  141.                                         fputs($connect, "RCPT TO:$addressArray[$i]\r\n");
  142.                                         $rcv = fgets($connect, 1024);
  143.                                 }
  144.                         }       
  145.                        
  146.                         $addressArray=explode(",",$this->;mailBCC);
  147.                         for($i=0;$i<count($addressArray);$i++){
  148.                                 if($this->;checkEmail($addressArray[$i]));
  149.                                 {
  150.                                         fputs($connect, "RCPT TO:$addressArray[$i]\r\n");
  151.                                         $rcv = fgets($connect, 1024);
  152.                                 }
  153.                         }       
  154.                         fputs($connect, "DATA\r\n");
  155.                         $rcv = fgets($connect, 1024);

  156.                         fputs($connect, $mailHeader."\r\n");
  157.                         fputs($connect, ".\r\n");
  158.                         $rcv = fgets($connect, 1024);

  159.                         fputs($connect, "RSET\r\n");
  160.                         $rcv = fgets($connect, 1024);

  161.                         fputs ($connect, "QUIT\r\n");
  162.                         $rcv = fgets ($connect, 1024);

  163.                         fclose($connect);
  164.                 }
  165.         }
复制代码

在freebsd+postfix环境下测试通过~~~~~~

论坛徽章:
0
2 [报告]
发表于 2004-01-11 23:37 |只看该作者

[原创]解决postfix环境下igenus的Return-Path问题(使用smtp)

支持一下,最好能把修改后的整个igenus安装包放到网上给大家,如果没有地方放,PM我。

论坛徽章:
0
3 [报告]
发表于 2004-05-14 11:07 |只看该作者

[原创]解决postfix环境下igenus的Return-Path问题(使用smtp)

最好做成*.dff

论坛徽章:
0
4 [报告]
发表于 2005-05-27 21:19 |只看该作者

[原创]解决postfix环境下igenus的Return-Path问题(使用smtp)

我按照你说的,把后面一段代码加进去,确定解决了问题,但同时也出现了新的问题:


那就是所有的邮件都就成无标题的了.
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP