无法实例化邮件功能。消息未发送 PHPMailer 错误:无法实例化邮件功能

时间:2021-01-30 08:18:43

标签: php gmail phpmailer

我正在使用 PHPMailer 发送邮件。我已在 Google Cloud 虚拟机实例上部署了我的网站

这是我的邮件发送代码

<?php
require_once('phpmailer/PHPMailerAutoload.php');
            $mail = new \PHPMailer;
            //$mail->isSMTP();                           
            $mail->Host = 'smtp.gmail.com'; 
            $mail->SMTPAuth = true;                 
            $mail->Username = '';          
            $mail->Password = ''; 
            $mail->SMTPSecure = 'tls';                
            $mail->Port = 587;                 
            $mail->isHTML(true); 
            $mail->addAddress($_POST['email']);
            $mail->Subject = "Testing PHPMailer with localhost";
            $mail->Body = "Hello, Below are the details of contact ";
            $mail->Body = "<table><tr><td>Name:</td><td>".$_POST['name']."</td></tr><tr><td>Email Address:</td><td>".$_POST['email']."</td></tr><tr><td>Subject :</td><td>".$_POST['subject']."</td></tr><tr><td> Message :</td>".$_POST['$POST['msg']."</td></tr></table>";

if(!$mail->Send())
    echo "Message was not sent <br />PHPMailer Error: " . $mail->ErrorInfo;
else
    echo "Message has been sent";
?>

但是邮件无法发送。谁能帮我吗?如果有人需要,我可以提供进一步的代码参考

2 个答案:

答案 0 :(得分:1)

尝试使用 SMTP 发送电子邮件:

$mail->IsSMTP();
$mail->Host = "smtp.example.com";

// optional
// used only when SMTP requires authentication

$mail->SMTPAuth = true;
$mail->Username = 'smtp_username';
$mail->Password = 'smtp_password';

答案 1 :(得分:1)

您已注释掉 isSMTP(),因此您没有使用 SMTP(因此您的 SMTP 设置都不会执行任何操作),而是使用默认的 mail() 传输。这要求您在服务器中安装邮件服务器,而您显然没有安装。

要修复,请按照 chirag 建议安装邮件服务器(postfix 很好)或启用 SMTP。

所有这些都包含在 PHPMailer 故障排除指南中。