2009-08-27 21 views
5

ウェブアプリケーションを構築し始めました。私の同僚はLinux上で開発しており、Windows XPを実行しているWAMPスタックを介して実行しています。私たちはZendを使っています。PHPがメールを送信し、メールを送信した後にハングアップする

私たちがフォームを送信し、Zendのメールを使って電子メールを送信すると、電子メールが送信され、空の画面が表示されます。

私はphpmailerを使用している自分の小さなスクリプトmail.phpを書きました。まったく同じことが起こり、電子メールが送信され、次に空白の画面が表示されます。だから我々はしている:

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

だからエラーが報告されていないがされ、電子メールを送信しますが、(あまりにまたは何か他のもの、通常のHTML)画面に出力したことがない「メッセージが送信されました」。

私はあまり技術的ではないので、明白なデバッグステップがあれば謝罪します。私は逃しているWindowsのPHPの設定に特有の何かがありますか?

これは認証のあるオフサイトのSMTPサーバーです。

答えて

0

この回答に長い間お詫び申し上げます。この問題は、オフィスのファイアウォールが送信SMTPトラフィックをブロックしているために発生しました。私はまだそれが何も返されなかった理由について確信していません - しかし、このオフィスの外では、テストされたときに無効なsmtpなどのPHPエラーが正常に返されました。適切なポートをネットワーク上で使用できるようにするケース。

ありがとうございました。

1

あなたはエラーが表示されているようですが、表示されていないようです。あなたのコードのどこかにこれがあることを確認してください。

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

そして、あなたのApacheログにも500エラーがないか調べてください。

+0

こんにちは。返信いただきありがとうございます。私は提案した行を追加しましたが、まだ空白の画面が表示されます。 Apacheはエラーを表示せず、Apacheのアクセスログの最後のエントリは127.0.0.1 - [27/Aug/2009:20:17:08 +0100] "GET /mail.php HTTP/1.1" 200です。 - これは大丈夫ですか? – Dave

1

PHPには疑問がある場合には、それ自身のエラーログがあります。あなたはそれがPHPのコアセクションに配置する必要があります

<?php 
phpinfo(); 
?> 

を実行することによってそれを見つけることができるはず -上に、それは空白だ場合は、php.iniファイルを編集し、あるいはlog_errorsをオンにし、希望する場所を指定しますファイルを作成する。

エラーこれを使用して見つかった表示できませんでした。

UPDATE

いくつかの掘削を行なったし、Zend_Mailのは、マニュアルに従って、基本的にPHPのメール()関数のラッパーであると思われる:http://framework.zend.com/manual/en/zend.mail.html

ことを念頭に置いてPHPのメールにいくつかの情報が(あります)関数は、SendMail http://www.php.net/manual/en/ref.mail.php(この記事の執筆時点で)の最初のコメントに関して見たいと思っているPHPマニュアルでは、* nixサーバのように動作するようにあなたのWAMPサーバを設定するためのすべての詳細を持っていますmailまでの操作は;-)

1

Windowsのマシン(私の開発マシン)で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]" 

?> 
関連する問題