2014-02-27 42 views
0

我想通過原來的老派sendmail發送電子郵件。從PHPmailer更改爲sendmail

以什麼方式我需要更改此代碼以使用sendmail?

我已經嘗試過,但我總是得到非常醜陋的錯誤,我試圖將IsMail更改爲IsSedmail,但仍然不會發送原始方式。

Phpmailer發送3封電子郵件和網站花了很多時間發送,所以我想去舊的平原「郵件(到...」,但問題是,我在所有的代碼丟失了所以請大家幫忙。

function send_mail($rec_email,$subject,$message, $IsHtml=false, $cc=array(), $bcc=array()) { 
    global $THIS_BASEPATH, $btit_settings; 

    if (!method_exists('PHPMailer','IsMail')) 
     include($THIS_BASEPATH.'/phpmailer/class.phpmailer.php'); 
    $mail=new PHPMailer(); 

    if ($btit_settings['mail_type']=='php') { 
     $mail->IsMail();         # send via mail 
     if (!empty($cc)) 
      $mail->AddCustomHeader('Cc: '.implode(',',$cc)); 
     if (!empty($bcc)) 
      $mail->AddCustomHeader('Bcc: '.implode(',',$bcc)); 
    } else { 
     $mail->IsSMTP();         # send via SMTP 
     $mail->Host  = $btit_settings['smtp_server']; # SMTP servers 
     $mail->Port  = $btit_settings['smtp_port'];  # SMTP port 
     $mail->SMTPAuth = true;       # turn on SMTP authentication 
     $mail->Username = $btit_settings['smtp_username']; # SMTP username 
     $mail->Password = $btit_settings['smtp_password']; # SMTP password 
     if (!empty($cc)) 
      foreach($cc as $carbon_copy) 
       $mail->AddCC($carbon_copy[0],$carbon_copy[0]); 

     if (!empty($bcc)) 
      foreach($bcc as $blind_carbon_copy) 
       $mail->AddBCC($blind_carbon_copy[0],$blind_carbon_copy[0]); 
    } 

    $mail->From  = $btit_settings['email']; 
    $mail->FromName = $btit_settings['name']; 
    $mail->CharSet = $btit_settings['default_charset']; 
    $mail->IsHTML($IsHtml); 
    $mail->AddAddress($rec_email); 
    $mail->AddReplyTo($btit_settings['email'],$btit_settings['name']); 
    $mail->Subject = $subject; 
    $mail->Body  = $message; 

    return ($mail->Send())?true:$mail->ErrorInfo; 
} 

非常感謝你。

+0

首先你說* sendmail *,然後* mail()* php函數,這些是不一樣的東西 – 2014-02-27 19:50:58

+0

** comment **整個函數的代碼和地方只有'mail(to ....)與所需參數 – Girish

+0

PHPMailer可以使用郵件(),壞主意,但它有配置。使用郵件的基本示例:http://phpmailer.worxware.com/?pg=examplebsendmail – 2014-02-27 19:51:46

回答

0

PHPMailer的不是「緩慢」的culrpit,它可能是你所指定的SMTP服務器。不要停止使用PHPMailer的,雖然。PHPMailer的呢額外的東西幕後發送郵件正確

要使用PHP的mail()更換郵件發送出去,通過本地服務器:

$mail->IsSMTP();         # send via SMTP 
$mail->Host  = $btit_settings['smtp_server']; # SMTP servers 
$mail->Port  = $btit_settings['smtp_port'];  # SMTP port 
$mail->SMTPAuth = true;       # turn on SMTP authentication 
$mail->Username = $btit_settings['smtp_username']; # SMTP username 
$mail->Password = $btit_settings['smtp_password']; # SMTP password 

有了:

$mail->isMail(); 

就是這樣。

如果你是一定服務器有選擇sendmail [或簡易替換像後綴或進出口]安裝,那麼你可以使用:

$mail->isSendmail(); 

然而,通過使用Web服務器發送你現在依賴的郵件:

  1. 安裝的MTA配置正確,他們通常不是。
  2. 根據各種黑名單的網絡服務器的聲譽。一般來說,網絡服務器具有很好的聲譽,因爲任何人都可以在沒有身份驗證的情況下將出站郵件放入隊列中。
+0

好吧,所以我將IsMail更改爲IsSendmail,現在該網站正常工作,但未發送電子郵件,IsMail正常工作,但正在發送3封電子郵件,而不是一個和我的託管服務器給出了一個錯誤,表明該網站正常運行並在一分鐘內刷新頁面。 – crentzc

+0

最後,我搜索了一個免費的託管網站,我添加了一個電子郵件地址,我用它作爲smtp服務器,並且像一個魅力一樣工作,感謝您的幫助。 – crentzc