0

我们的网站上有一个 PHP 表单,已经使用了多年。当用户填写表格时,会将详细信息发送给我们,并向他们发送电子邮件,然后将用户重定向到“谢谢”页面。但是,如果用户将他们的电子邮件地址设置为 @gmail.com,则表单无法发送,它不会显示感谢页面。

这真的很奇怪。我们正在使用 PHPMailer 并验证表单是否已通过以下方式发送:

 if($mail->Send()) {
      $mailsent = true;

如果用户输入@hotmail.com 或@yahoo.com 一切都很好。但是输入 @gmail.com 和 $mailsent 总是错误的。

在这种情况下,问题出在哪里?在我看来,我们的网络主机与 Gmail 的 SMTP 连接失败了。这看起来对吗?

这是代码:

<?php
error_reporting(E_ALL); 
ini_set("display_errors", 1);

  $name = '';
  $email = '';
  $mailsent = false;
  $referer = '';

  if(isset($_POST['name'])){

  include('phpmailer/class.phpmailer.php');

    $name     = $_POST['name'];
    $email    = $_POST['email'];
    $subject = 'Quote request  from ' . $name;
    $body = 'A quote request has been received from a user with following details:' . "\n\n" .
            "Name: $name \n" .
            "Email: $email \n" .
            "----------------------------------------------------\n\n" .
            "Place: UK".

    $body .= "\n----------------------------------------------------\n\n";
    $body .= "Refering: ".$referer." \n";


    $mail = new PHPMailer();
    $mail->Subject  = $subject;
    $mail->From     = $email;
    $mail->FromName = $name;
    $mail->Body = $body;
    $mail->AddAddress("dean@example.com", "Example");

    if($mail->Send()) {
      $mailsent = true;

    } else {
      $error[] = 'There was some error. Please try later.';
    }

  }
?>
4

0 回答 0