ValidateAddress в PHPMailer ведет себя странно - PullRequest
1 голос
/ 17 октября 2011

Я использую PHPMailer, и $ mail-> Send () возвращает ошибку, моя проблема в том, что я использую эту строку электронной почты "noreply@pleasenoreply.com" в $ mail-> SetFrom (), но вС другой стороны, он отлично работает практически с любым другим электронным письмом, например hello@hello.com.

После отладки кода я обнаружил, что проблема в файле class.phpmailer.php над функцией ValidateAddress (),Похоже, что электронная почта «noreply@pleasenoreply.com» недействительна ни для FILTER_VALIDATE_EMAIL, ни для preg_match

PHPMailer - class.phpmailer.php - строка 550:

  public static function ValidateAddress($address) {
    if (function_exists('filter_var')) { //Introduced in PHP 5.2
      if(filter_var($address, FILTER_VALIDATE_EMAIL) === FALSE) {
        return false;
      } else {
        return true;
      }
    } else {
      return preg_match('/^(?:[\w\!\#\$\%\&\'\*\+\-\/\=\?\^\`\{\|\}\~]+\.)*[\w\!\#\$\%\&\'\*\+\-\/\=\?\^\`\{\|\}\~]+@(?:(?:(?:[a-zA-Z0-9_](?:[a-zA-Z0-9_\-](?!\.)){0,61}[a-zA-Z0-9_-]?\.)+[a-zA-Z0-9_](?:[a-zA-Z0-9_\-](?!$)){0,61}[a-zA-Z0-9_]?)|(?:\[(?:(?:[01]?\d{1,2}|2[0-4]\d|25[0-5])\.){3}(?:[01]?\d{1,2}|2[0-4]\d|25[0-5])\]))$/', $address);
    }
  }

Почему это возможно??Кто-нибудь есть идеи, что происходит ???почему это письмо "noreply@pleasenoreply.com" не разрешено?

1 Ответ

1 голос
/ 17 октября 2011

моя проблема в том, что я использую эту строку электронной почты "noreply@pleasenoreply.com" в $ mail-> SetFrom ()

Я не знаю, почему это конкретный адрес отклоняется, а другие нет, но обычно вам нужно указать не только действительный адрес электронной почты в качестве адреса отправителя, но и адрес, который обрабатывается на почтовом сервере, с которого отправляется сообщение.,

В противном случае либо отправляющий сервер отклонит отправку, либо получающий сервер с большой вероятностью выбросит сообщение как спам.

Обычная политика - указать noreply@yourdomain.com (ваш домен.com является доменом вашего сайта).На некоторых серверах вам нужно настроить этот адрес, чтобы разрешать отправлять с него почту.

...