不接收来自phpmailer和cpanel的电子邮件

时间:2019-02-25 05:35:31

标签: php smtp phpmailer cpanel

所以我有一个使用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='sendingemail@gmail.com';
    $mail->Password='*********';

    $mail->setFrom('sendingemail@gmail.com');
    $mail->addAddress('receivingemail@gmail.com');
    $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

2 个答案:

答案 0 :(得分: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
}

第二种: 您还在使用CSF防火墙吗?如果是这样,请检查是否已启用“ SMTP_BLOCK”设置。如果启用了STMP_BLOCK,请与主机联系以将其禁用。

答案 1 :(得分:0)

将此添加到您的设置:

$mail->isSMTP();
$mail->SMTPDebug = 2; 
$mail->SMTPAuth = true;
if (!$mail->send()) {
    echo 'Mailer Error: ' . $mail->ErrorInfo;
} else {
    echo 'Message sent!';
}