2011-10-17 4 views
1

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]"이 허용되지 않습니까?

+0

정확한 오류 메시지를 항상 * 인용하십시오. –

+0

코드의 어떤 부분에서 오류가 있는지 정확히 확인 했습니까? 나는 간단한 전자 메일에서 filter_var 한 번의 폭격을 볼 수 없으므로 정규 표현식은 버그가 있습니다. ... filter_var이 실제로 pleasenoreply.com에서 DNS 조회를 수행하지 않는 한 해결되지 않습니다. –

답변

1
내가 그 특정 주소가있는 이유

모르겠어요 $ 메일 -> SetFrom() 이내에 이메일 문자열 "[email protected]"을 사용할 때 내 문제가

거부 된 메일과 다른 메일은 제외되지만 일반적으로 보내는 사람 주소로 유효한 전자 메일 주소뿐만 아니라 메시지를 보내는 메일 서버에서 처리되는 전자 메일 주소를 지정해야합니다.

그렇지 않으면 보내는 서버가 보내는 것을 거부하거나받는 서버가 스팸으로 메시지를 버릴 가능성이 큽니다.

일반적인 정책은 [email protected] (yourdomain.com은 귀하의 웹 사이트 도메인 임)을 지정하는 것입니다. 일부 서버에서는 메일을 보낼 수 있도록 해당 주소를 실제로 설정해야합니다.