首页 > 解决方案 > 如何使用没有 SMTP 的 phpmailer 修复“无法实例化邮件功能”错误

问题描述

我正在使用没有 SMTP 的 phpmailer 从我托管在 namecheap 的网站发送电子邮件。代码如下所示。我收到错误“无法实例化邮件功能”。我在这里读了很多帖子,但我无法解决我的问题。需要帮助,谢谢

我试过使用

 $mail->From = $email;
 $mail->FromName = $name;

而不是,$mail->SetFrom($email, $name);反之亦然。也有和没有$mail->addReplyTo()功能。

    <?php
    require 'phpmailer/PHPMailerAutoload.php';
    if ($_SERVER['REQUEST_METHOD'] == "POST") {
    $mail = new PHPMailer();

    $mail->SMTPDebug  = 1; //for debugging
    $name = $_POST['name'];
    $email = $_POST['email'];
    $phone = $_POST['phone'];
    $name = $_POST['name'];
    $date = $_POST['date'];
    $no_of_people = $_POST['NoOfPerson'];
    $package = $_POST['select-package'];
    $comment = $_POST['comment'];

    //$mail->SetFrom($email, $name);
    $mail->From = $email;
    $mail->FromName = $name;
    $mail->addAddress("umarsattar1989@hotmail.com"); //Recipient Email
    //$mail->addReplyTo($email, "Reply");

    $Message = "Some Text Here";
    $mail->Subject = "Inquiry about ".$package." Package";
    $mail->Body = $Message;

    if(!$mail->send()) {
    $result = "Mailer Error: " . $mail->ErrorInfo;
    } //if closing
    else 
    {
        $result = "Message has been sent successfully";
    } //else closing
    } //main if closing

“邮件程序错误:无法实例化邮件功能。” $result正在以变量形式打印

标签: phpemailphpmailer

解决方案


使用 mail() 时,需要安装本地邮件服务器。如果你不这样做,这就是你得到的错误。

您目前没有使用 SMTP,因为您还没有调用isSMTP().

所以解决办法是安装一个邮件服务器。

或者,使用 SMTP 通过远程服务器发送。


推荐阅读