2010-02-17 2 views
0

내가 PHPmailer 다음과 같은 코드가 있습니다 :PHPmailer 여러 수신자는 오류

$tomailn[0] = '[email protected]'; 
$tomailn[1] = '[email protected]'; 
foreach($tomailn as $value) 
{ 
$mail->AddAddress($value, ''); 
} 

하지만 '메일 기능을 인스턴스화 할 수 없습니다'오류를 얻고있다.

나는 잘 작동 배열에서 항목을 제거하지만, 2 개 이상의 주소를 추가 할 때에 오류를 제공합니다. 왜 이런 일이 일어나고 있는거야? 여러 전자 메일 주소를 추가하는 다른 방법이 있습니까?

건배, Gazler.

+0

당신은 사용하고있는 phpmailer의 정확한 버전에 어떤 링크를 게시 할 수 있습니까? 추측 이외에는 여기에 충분한 정보가 없습니다. –

답변

4

소스 코드를 파헤 치십시오. PHPMailer.php를 편집하고 "function MailSend"을 찾으십시오. (5.0.2에서는 564 행에 있습니다.)

이 함수에서 mail()을 호출 할 때마다 @ error suppressor을 제거합니다. error_reporting이 디버깅에 적합한 것으로 설정되어 있는지 확인하십시오. 개발할 때,이 같은 것을 선택 : PHP 오류를 표시하는 경우

error_reporting(E_ALL | E_STRICT); 
ini_set('log_errors', 'On'); 
ini_set('display_errors', 'On');

을 참조하십시오. PHPMailer는 if ($this->Sender != '' && strlen(ini_get('safe_mode'))< 1)true로 평가 것을 의미 mail() 반환 뭔가 falsey 마지막 호출, 또는 $rt 경우 결코이 설정되지 가져옵니다 인스턴스화 예외를 발생시킵니다.

안전 모드를 사용 중입니까? PHP 메일러 $mailer->Senderini_get('safe_mode')은 무엇을 말합니까? (내 생각 엔 : 안전 모드에서 실행하지만 Off 같은 값으로 설정이되어 있지 않은 경우,이 코드는 true를 반환합니다.)

+0

경고 : mail() [function.mail] : 안전 모드 제한 사항. 다섯 번째 파라미터는 이메일 기능을 인스턴스화 할 수 590
라인 /home/gazler/public_html/ahem/includes/php/class.phpmailer-lite.php 안전 모드에서 사용할 수있다. 메일러 오류 : 메일 기능을 인스턴스화 할 수 없습니다. – Gazler

+0

오류의 결과로 firth 매개 변수가 제거되어 메일이 잘 발송되었지만 유일한 문제는 모든 수신자가 전자 메일을 수신하지만 모든 수신자를 표시하지 않는다는 것입니다. – Gazler

+0

PHPMailer의 SMTP 전송을 사용할 수 있습니까? (필자는 PHPMailer와 safe_mode에 대해 충분히 익숙하지 않습니다. 죄송합니다.) – janmoesen

0

당신은 $mail->AddAddress($value);을 시도 했습니까?

+0

네, 아무런 차이가 없습니다, 제안을 주셔서 감사합니다. – Gazler

0

from 헤더를 설정하거나 유효하지 않을 때이 오류가 발생 시간의 대부분. 다음 중 하나를 시도, 그것은 여전히 ​​작업을 나던 경우

$mail->From = '[email protected]'; 

:이 변수를 설정보십시오 mail 서버 (그리고 php.ini 설정)에서 활성화 된 경우

  • 확인;
  • 하려면 openssl 모듈 (A phpinfo()을 실행하고 OpenSSL을 검색)
+0

이러한 조건의 세 가지가 내가 단일 요소 배열이 잘 작동으로 문제가 루프있다 확신, 괜찮습니다. – Gazler

0

난 그냥 PHPMailer의 소스 코드를보고 사용할 수 있습니다, "메일 기능을 인스턴스화 할 수 없습니다"라는 메시지가 mail() false를 반환 함을 나타냅니다.

당신은 당신이 일반적으로 이메일을 받아 알고 두 개의 서로 다른 이메일 주소로 동일한 기능을 시도하지만 수 있습니까?

0

것은 당신이 하나를 사용하지 않는 경우 PHPMailer의 최신 버전을 다운로드하십시오, 그것은 버그 수정이 . 메일러 클래스가 엉망으로 된 가능성이 있습니다.

0

'메일 기능을 인스턴스화 할 수 없습니다'. 우편물 기능 작동 여부를 확인하십시오. 이 오류는 호스팅 제공 업체의 제한으로 인해 여러 번 발생합니다.많은 시간 접대 공급자는 당신의 우편물 특징을 그 때 일반적으로 당신 얻는다이 과실을 막는다

관련 문제