2009-08-27 3 views
5

웹 응용 프로그램을 빌드하기 시작합니다. 내 동료가 리눅스에서 개발 중이며 Windows XP를 실행하는 WAMP 스택을 통해 실행 중입니다. 우리는 젠드를 사용하고 있습니다.PHP가 메일을 보내면 메일을 보낸 후 '정지'합니다.

우리가 양식을 제출하고 Zend 전자 메일을 사용하여 전자 메일을 보내면 전자 메일이 전송 된 다음 빈 화면이 나타납니다. 리눅스 시스템에서 응용 프로그램이 정상적으로 계속됩니다.

필자는 phpmailer를 사용하는 mail.php라는 작은 스크립트를 작성했습니다. 똑같은 일이 발생하고 이메일이 보낸 다음 빈 화면이 나타납니다. "메시지가 전송되었습니다"

if(!$mail->Send()) 
{ 
echo "Mailer Error: " . $mail->ErrorInfo; 
} 
else 
{ 
echo "Message has been sent"; 
} 

그래서, 오류가보고되지가 이메일을 보내지 만, 화면 (또는 다른 것, 너무 일반적인 HTML)에 인쇄 결코 : 그래서 우리가 있습니다.

나는 기술이별로 없으므로 명백한 디버그 단계가 있다면 사과드립니다. 뭔가 놓친 창문 PHP 구성에 특이한가 있나요?

인증을 거친 오프 사이트 SMTP 서버입니다.

답변

0

사과에 너무 오래 걸려서 답변드립니다. 이 문제는 아웃 바운드 SMTP 트래픽을 차단하는 사무실의 방화벽으로 인해 발생했습니다. 나는 왜 그것이 아무것도 반환하지 않았는 지에 대해서는 확신하지 못한다. 그러나이 사무실 밖에서는 유효하지 않은 smtp 등의 PHP 오류를 테스트했을 때 괜찮았다. 적절한 포트를 네트워크에 허용하는 경우.

도움을 주신 모든 분들께 감사드립니다.

1

소리가 들리지만 오류가 발생하는 것처럼 보입니다. 코드의 어딘가에 있는지 확인하십시오.

ini_set('display_errors', 1); 
error_reporting(E_ALL); 

그리고 500 개의 오류에 대해서도 아파치 로그를 검사하십시오.

+0

안녕하세요. 답장을 보내 주셔서 대단히 감사합니다. 내가 제안한 줄을 추가했지만 여전히 빈 화면이 나타납니다. 아파치 액세스 오류의 마지막 항목은 다음과 같습니다 : 127.0.0.1 - [27/Aug/2009 : 20 : 17 : 08 +0100] "GET /mail.php HTTP/1.1"200 - 괜찮습니까? – Dave

1

PHP에는 의심되는 부분이있을 때 자체 오류 로그가 있습니다. 당신은 실행하여 찾을 수 있어야한다

<?php 
phpinfo(); 
?> 

그것은 PHP 코어 섹션에 위치해야한다 - 그것은 빈 만약 당신이 원하는 위치, php.ini 파일을 편집하고 log_errors 옵션을에를 켜고 지정 될 파일.

오류 이것을 사용하여 발견 할 수없는 오류가 발생했습니다. UPDATE

는 뒷조사를했고 Zend_Mail이 문서에 따라 PHP의 메일에 대한 래퍼() 함수 본질적 것 같다 : PHP의 메일에 대한 몇 가지 정보 (거기 염두에두고 http://framework.zend.com/manual/en/zend.mail.html

가) 함수는 SendMail http://www.php.net/manual/en/ref.mail.php (이 글을 쓰는 시점에서)에 대한 첫 번째 주석과 관련하여 살펴보고자하는 PHP 매뉴얼에서 WAMP 서버가 * nix 서버처럼 동작하도록 구성하는 데 대한 모든 세부 정보를 제공합니다. mail() 작업까지 이동 ;-)

1

필자는 windows box (my dev machine)에서 phpmailer를 성공으로 사용합니다. 설치 코드를 볼 수 있습니까? 나는 아래처럼 뭔가를한다. 한 가지는 ssl을 사용하는 경우 openssl 모듈이 php에 설치되어 있는지 확인해야합니다. 아래를보십시오. SMTPDebug 플래그가 작업 할 수있는 출력을 가지도록 설정되었는지 확인하십시오.

<?php 

$mail    = new PHPMailer(); 

$mail->IsSMTP(); 
$mail->Host  = "blah.com"; 
$mail->SMTPDebug = 1; 
$mail->SMTPAuth = true; 
$mail->SMTPSecure = "ssl"; 
$mail->Host  = "mail.blah.com"; 
$mail->Port  = 465; 
$mail->Username = "[email protected]"; 
$mail->Password = "smtppass"; 

$mail->SetFrom('[email protected]', 'Blah Name'); 
$mail->AddReplyTo("[email protected]", "Blah Name"); 
$mail->Sender = "[email protected]" 

?> 
관련 문제