所以我有一个使用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
答案 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!';
}