没有收到来自phpmailer和cpanel的电子邮件

问题描述 投票:0回答:2

所以我有一个使用phpmailer的联系表单。它会从一个Gmail帐户向另一个帐户发送电子邮件。但我似乎无法收到接收电子邮件的接收电子邮件。

该脚本托管在cpanel(RivalHost)上,域名在GoDaddy上。我问RivalHost他们是阻止SMTP连接还是阻止端口587或465,他们说他们不是。所以我不知道是什么导致了这个问题。该脚本在我的本地主机上完全正常,而不是在cpanel上

继承邮件脚本:

<?php

$result="";

if(isset($_POST['submit'])){
    require 'phpmailer/PHPMailerAutoload.php';
    $mail = new PHPMailer;

    $mail->Host='smtp.gmail.com';
    $mail->Port=465;
    $mail->SMTPAuth=true;
    $mail->SMPTSecure='ssl';
    $mail->Username='[email protected]';
    $mail->Password='*********';

    $mail->setFrom('[email protected]');
    $mail->addAddress('[email protected]');
    $mail->addReplyTo($_POST['email'],$_POST['name']);

    $mail->isHTML(true);
    $mail->Subject='Contact: '.$_POST['subject'];
    $mail->Body='Message: '.$_POST['msg'].'</h1>';

    if(!$mail->send()){
        $result='something went wrong';
        echo $result;


    } else {
        $result="thank you";
        echo $result;
    }
}

?>

我还被要求检查我的MX记录,但不确定要将它们更改为什么,或者我是否需要更改它们:

MX  0   ********.com    3599    RBL
php smtp phpmailer cpanel
2个回答
0
投票

解决方案1:PHPMailer使用异常。您可以将代码放在try / catch块中,以获取导致电子邮件无法发送的异常。

$mail = new PHPMailer(true); //defaults to using php "mail()"; the true param means it will throw exceptions on errors, which we need to catch

try {
  //Email information comes here
  $mail->Send();
  echo "Message Sent OK\n";
} catch (phpmailerException $e) {
  echo $e->errorMessage(); //Pretty error messages from PHPMailer
}

解决方案2:您是否也在使用CSF防火墙?如果是,请检查是否启用了“SMTP_BLOCK”设置。如果启用SMTP_BLOCK,则联系托管以禁用它。


0
投票

将其添加到您的设置:

$mail->isSMTP();
$mail->SMTPDebug = 2; 
$mail->SMTPAuth = true;
if (!$mail->send()) {
    echo 'Mailer Error: ' . $mail->ErrorInfo;
} else {
    echo 'Message sent!';
}
© www.soinside.com 2019 - 2024. All rights reserved.