2009-08-27 9 views
5

zaczynamy budować aplikację internetową. Mój kolega rozwija się na Linuksie, a ja działam przez stos WAMP z systemem Windows XP. Używamy Zend.PHP wysyła pocztę do Windows, powodując jej "zawieszenie się" po wysłaniu emaila

Po przesłaniu formularza i wysłaniu wiadomości e-mail za pomocą adresu e-mail Zend wiadomość e-mail zostanie wysłana, a następnie pojawi się pusty ekran, na komputerze z systemem Linux, który będzie normalnie kontynuowany.

Więc napisałem swój własny mały skrypt, mail.php, który używa phpmailera - i dokładnie to samo się dzieje, e-mail wysyła, a następnie pusty ekran. Tak więc mamy:

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

więc nie ma błędu podano, wysyła wiadomość e-mail, ale „Wiadomość została wysłana” Nigdy nie drukuje na ekranie (lub czegokolwiek innego, normalnego HTML zbyt).

Nie jestem zbyt techniczny, więc przepraszam, jeśli istnieją oczywiste kroki do debugowania. Czy jest coś osobliwego dla konfiguracji php w Windows, które przeoczyłem?

To lokalny serwer SMTP z uwierzytelnianiem.

Odpowiedz

0

Przeprosiny za tak długo, aby odpowiedzieć na to pytanie. Problem został spowodowany przez zaporę w biurze blokującą wychodzący ruch SMTP. Nadal nie jestem pewien, dlaczego nie zwrócił nic - ale poza tym biurze, gdy został przetestowany, błędy PHP za nieprawidłowe smtp itp. Wrócił dobrze. Tylko przypadek uzyskania odpowiednich portów dozwolonych w sieci.

Dziękuję wszystkim za pomoc.

1

Wygląda na to, że dostałeś błąd, ale po prostu go nie widzisz. Upewnij się, że masz gdzieś w swoim kodzie

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

Sprawdź również dzienniki apache na 500 błędów.

+0

Witaj Peter. Dziękuję bardzo za odpowiedź. Dodałem linie, które zasugerowałeś i nadal dostaję pusty ekran. Apache nie pokazuje żadnych błędów, które widzę, ostatni wpis w dzienniku dostępu Apache to: 127.0.0.1 - - [27/Aug/2009: 20: 17: 08 +0100] "GET /mail.php HTTP/1.1" 200 - co wydaje się być w porządku? – Dave

1

PHP ma swój własny dziennik błędów, w razie wątpliwości sprawdź. Powinieneś być w stanie zlokalizować ją uruchamiając

<?php 
phpinfo(); 
?> 

Powinien być umieszczony w sekcji PHP core - czy to puste, edytować plik php.ini i skręcić log_errors na i określić, gdzie chcesz plik musi być.

Błędy, których nie udało mi się wyświetlić. Znalazłem, korzystając z tego.

UPDATE

Czy trochę kopanie i wydaje się, że Zend_Mail jest zasadniczo otoki dla poczty PHP() funkcja zgodnie z dokumentacją: http://framework.zend.com/manual/en/zend.mail.html

Mając to na uwadze, istnieje kilka informacji na temat poczty PHP () w podręczniku PHP, który będziesz chciał sprawdzić w odniesieniu do SendMail http://www.php.net/manual/en/ref.mail.php pierwszy komentarz na stronie (od tego pisania) zawiera wszystkie szczegóły dotyczące konfiguracji serwera WAMP, aby zachowywał się jak serwer * nix - przynajmniej jeśli chodzi o operacje mail() ;-)

1

Używam phpmailer z powodzeniem na oknie systemu Windows (moja maszyna dev). Czy mogę zobaczyć kod instalacyjny? Robię coś jak poniżej. Jedną z rzeczy jest upewnienie się, że moduł openssl jest zainstalowany w php, jeśli używasz ssl. Spójrz na poniższe. Upewnij się, że flaga SMTPDebug ma pewne wyjście, z którym możesz pracować.

<?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]" 

?> 
Powiązane problemy