PHPMailer를 사용하고 있고 $ mail-> Send()가 오류를 반환하고 있습니다. 내 전자 메일 문자열 "[email protected]"을 $ mail-> SetFrom). 그러나 다른 한편으로는 그것은 거의 모든 다른 이메일 즉 "[email protected]"으로 잘 작동합니다.ValidateAddress가 PHPMailer에서 작동하지 않습니다.
코드를 디버깅 한 후에이 문제는 ValidateAddress() 함수를 통해 class.phpmailer.php 파일에 있음을 알게되었습니다. 이 이메일은 "[email protected]"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\!\#\$\%\&\'\*\+\-\/\=\?\^\`\{\|\}\~][email protected](?:(?:(?:[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);
}
}
이유있다? 아무도 무슨 일이 일어나고 있는지 알지? 왜이 이메일 "[email protected]"이 허용되지 않습니까?
정확한 오류 메시지를 항상 * 인용하십시오. –
코드의 어떤 부분에서 오류가 있는지 정확히 확인 했습니까? 나는 간단한 전자 메일에서 filter_var 한 번의 폭격을 볼 수 없으므로 정규 표현식은 버그가 있습니다. ... filter_var이 실제로 pleasenoreply.com에서 DNS 조회를 수행하지 않는 한 해결되지 않습니다. –