在 linux 服务器 GoDaddy 中安装 PHPMailer

Setup PHPMailer in a linux server GoDaddy

我在我的服务器根目录中提取了 PHPMailer zip 并创建了 contact.php 文件来处理联系表单数据但是当我提交表单时我得到一个错误不是我在我的 catch 块中使用的错误得到这个错误糟糕!发生错误,无法发送您的消息。 我需要一些帮助来设置我的服务器中的 PHPMailer。这是我的 contact.php 代码

<?php
    use PHPHMailer\PHPMailer\PHPMailer;
    use PHPMailer\PHPMailer\Exception;

    require 'PHPMailer/src/Exception.php';
    require 'PHPMailer/src/PHPMailer.php';
    require 'PHPMailer/src/SMTP.php';

    $mail = new PHPMailer(true);
    try {
        //
        $mail->SMTPDebug = 0;
        $mail->isSMTP();
        $mail->Host = 'sxb1plzcpnl473190.prod.sxb1.secureserver.net';
        $mail->SMTPAuth = true;
        $mail->Username = 'info@***.co.za';
        $mail->Password = '***';
        $mail->SMTPSECURE = 'tls';
        $mail->Port = 587;

        // receipt
        $mail->setFrom('My Mail');
        $mail->addAddress($_POST['email']);
        // content
        $mail->isHtml(true);
        $mail->Name = $_POST['name'];
        $mail->Phone = $_POST['phone'];
        $mail->Email = $_POST['email'];
        $mail->Subject = $_POST['subject'];
        $mail->Body = $_POST['message'];

        $mail->send();
        // echo message has been sent
        // header('Location: www.***.co.za');
        echo 'alert("Thank You For Contacting US, Will Get Back To You Within  24Hours")';
        exit();
    } catch (Exception $e) {
        echo 'Failed To Send Contact Info, Please Try Again';
    }
?>

GoDaddy 对发送电子邮件施加了非常严格的限制(几乎变得毫无用处)。他们阻止到端口 25、465 和 587 的出站 SMTP 到除他们自己的服务器之外的所有服务器。这个问题是 Stack Overflow 上许多令人沮丧的问题的主题。 GoDaddy 对解决方案的记录非常糟糕:您必须通过他们的服务器发送,并且还禁用所有安全功能、用户名和密码(太棒了,是吧?!),为您提供 PHPMailer 的配置:

$mail->isSMTP();
$mail->Host = 'localhost';
$mail->SMTPAuth = false;
$mail->SMTPAutoTLS = false; 
$mail->Port = 25;

GoDaddy 也拒绝发送属于任何 aol、gmail、yahoo、hotmail、live、aim 或 msn 域的发件人地址(请参阅他们的文档)。这是因为所有这些域都部署了 SPF 和 DKIM 防伪措施,伪造您的发件人地址是伪造的。

For more details: https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting#godaddy