0

私たちのウェブサイトには、何年も機能している PHP フォームがあります。ユーザーがフォームに入力すると、詳細が送信され、電子メールが送信され、ユーザーが「ありがとう」ページにリダイレクトされます。ただし、ユーザーがメール アドレスを @gmail.com として入力すると、フォームの送信に失敗し、サンキュー ページが表示されません。

これは本当に奇妙です。PHPMailer を使用しており、フォームが以下を使用して送信されたかどうかを検証します。

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

ユーザーが @hotmail.com または @yahoo.com で入力した場合、すべて問題ありません。ただし、@gmail.com と入力すると、$mailsent は常に false になります。

この状況で、問題はどこにあるのでしょうか? 私たちの Web ホストから 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