私はこれについて解決策を見つけるためにインターネットでこれを検索するために午前中ずっと費やしました。 Windows 8.1にwampサーバーをインストールしましたが、sendmail( http://glob.com.au/sendmail/ )とGmailアカウントでメールを送信しようとしています
ポート番号465を使用するようにsendmailを構成すると、常に次のエラーが表示されます:Socket Error#10060Connection timed out
ポート番号587を使用しようとすると、エラーログに次の行が表示されます:Connection Closed Gracefully。ただし、メールは送信されません。
これは私のsendmail.iniファイルです
[sendmail]
smtp_server=smtp.gmail.com
;I tried both: 587, 465
smtp_port=587
; I tried: "blank, auto ssl, tls, none"
smtp_ssl=
error_logfile=error.log
debug_logfile=debug.log
[email protected]
auth_password=mypass
hostname=localhost
そして、これはphp.iniファイルです
[mail function]
smtp_port = 465
sendmail_path="C:\wamp\sendmail\sendmail.exe -t"
mail.add_x_header = On
ssl_moduleはApacheでアクティブであり、phpはphp_open_sslおよびphp_socket拡張を使用します。
また、私は成功せずにstunnelを使用しようとしました
編集27/01/2014
Sendmail.iniでsmtp_port = 465とsmtp_ssl = sslを設定します。また、sendmail.exeをWindows XP SP3プログラムとして実行する必要があることを設定しました。その後、Windowsコンソールでsendmail.exeを実行すると、電子メールが正しく送信されます。 wampがメールを送信しようとすると、sendmailのエラーログでこのエラーが発生します。ソケットエラー#10060接続がタイムアウトしました。
これは、sendmailのテストに使用しているコードです。
<?php
$email = "[email protected]";
$to = "[email protected]";
$subject = "Hi!";
$body = "Hi,How are you?";
$headers = 'From: ' .$email . "\r\n".'Reply-To: ' . $email. "\r\n".'X-Mailer: PHP/' . phpversion();
if (mail($to, $subject, $body, $headers)) echo("<p>Email successfully sent</p>");
else echo("<p>Email delivery failed</p>");
?>
最終的に私は答えを見つけました。
問題は、sendmailを管理者として実行する必要があることです。これは私の状況で誰でも助ける解決策です。
そして保存:D
このナンセンスで失われた2日間:(
受け入れられた答えの拡張として:
PHPでメール送信機能を実行している場合、「メール送信」アプリを管理者として実行するように求めるダイアログが表示される場合があります。 [はい]をクリックすると、コマンドプロンプトダイアログが表示され、何も起こりません。コマンドプロンプトを閉じるまでページがハングします。メール機能は「True」を返しますが、実際にはメッセージは送信されませんでした。
この問題を解決するには、受け入れられた回答と同じ手順を実行し、次のいずれかの方法で管理者としてサーバー(またはIDE)を実行します。
1)プログラム(サーバー、IDE、コマンドプロンプトなど)を右クリックし、[管理者として実行]をクリックします
2)OR右クリックプログラム>プロパティ>互換性>管理者として実行にチェックマークを付ける
たとえば、ビルドサーバーでPHPを使用している場合、管理者としてプロンプトを実行し、通常どおりサーバーを起動します。
C:\wamp\bin\php\php5.5.12\php.exe -S localhost:80 -t C:\Users\path\to\rootFolder
もちろん、ニーズに合わせてファイルパスを変更します。
これが誰かを助けることを願っています!!!これで歳をとった!
問題は、sendmailを管理者として実行する必要があることです。これは私の状況で誰でも助ける解決策です。