Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/263.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从PHPmailer更改为sendmail_Php_Sendmail_Phpmailer - Fatal编程技术网

从PHPmailer更改为sendmail

从PHPmailer更改为sendmail,php,sendmail,phpmailer,Php,Sendmail,Phpmailer,我想通过原始的老式sendmail发送电子邮件 我需要以何种方式更改此代码才能使用sendmail 我试过了,但我总是会犯一些很难看的错误,我试着把IsMail改成IsSedmail,但还是没有按原来的方式发送 Phpmailer发送了3封电子邮件,网站需要花费很多时间才能发送,所以我想转到旧的普通“邮件(发送至…”,但问题是,我迷失在所有代码中,所以请帮助 function send_mail($rec_email,$subject,$message, $IsHtml=false, $cc=a

我想通过原始的老式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;
}

非常感谢。

PHPmailer不是“慢”的缩写,它可能是您指定的SMTP服务器。不过,不要停止使用PHPmailer。PHPmailer在幕后做了大量额外的工作来正确发送邮件

要使用PHP的
mail()
replace通过本地服务器发送邮件,请执行以下操作:

$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
与:

就这样

如果您确定服务器已安装Sendmail[或Postfix或Exim等插入式替换件],则可以使用:

$mail->isSendmail();
但是,通过使用web服务器发送邮件,您现在依赖于:

  • 已安装的MTA配置正确,但它们通常不正确
  • 根据各种黑名单确定web服务器的信誉。通常,web服务器具有s**t信誉,因为任何人都可以在无需身份验证的情况下将出站邮件放入队列

  • 首先说sendmail,然后说mail()php函数,这些不是相同的东西注释整个函数代码,只放置
    mail(to…)
    和所需的参数SphpMail可以使用mail(),不好的主意,但它有配置。使用邮件的基本示例:好的,我将IsMail改为IsSendmail现在网站工作正常,但没有发送电子邮件,IsMail工作,但是,正在发送3封电子邮件,而不是一封,我的托管服务器给出一个错误,网站立即关闭,并在一分钟内刷新页面。最后,我搜索一个免费的托管网站,我添加了一个电子邮件地址,我用它作为smtp服务器,就像一个魅力,谢谢你的帮助。
    $mail->isSendmail();