web-dev-qa-db-ja.com

「localhost」ポート25でメールサーバーに接続できませんでした

PHPで電子メールを送信しようとすると、このエラーが発生し続けます。

Warning: mail() [function.mail]: Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in C:\wamp\www\dressoholic\register.php on line 50

私のphp.iniは次のようになります。

[mail function]
; For Win32 only.
; http://php.net/smtp
SMTP = localhost
; http://php.net/smtp-port
smtp_port = 25

; For Win32 only.
; http://php.net/sendmail-from
sendmail_from = [email protected]

ラップトップをサーバーとして使用しています。何が間違っていますか?ありがとう。

63
Loolooii

メールサーバーをローカルで実行する必要があります。これがUnixの場合、sendmailを有効にします。これがWindowsの場合、IIsのSimple Mail Transfer Server(名前が正しいかどうかわからない)コンポーネントをインストールします。例えば。 Windows 2003の場合は、これに従います。 http://msdn.Microsoft.com/en-us/library/8b83ac7t.aspx

29
MK.

PHPを使用してメールを送信するには、メール機能が使用されます。ただし、メール機能では、メールを送信するためにSMTPサーバーが必要です。 php.iniファイルでSMTPホストとSMTPポートを指定する必要があります。 SMTPサーバーの構成が成功すると、メールはphpスクリプトを介して正常に送信されます。

20
Rubin Porwal

Windowsでは、ほぼすべてのAMPP(Apache、MySQL、PHP、PHPmyAdmin)パッケージにメールサーバーが含まれていません(ただし、ほぼすべての裸のLinuxにはあります!)。したがって、WindowsでPHPを使用する場合は、メールサーバーをセットアップする必要があります。

Imoの最も簡単でシンプルなツールは次のとおりです。 http://smtp4dev.codeplex.com/

SMTP4Devは、送信するメールを収集するシンプルな1ファイルメールサーバーツールです(したがって、実際にメールを送信するのではなく、開発のために保持するだけです)。完璧なツール。

19
Sliq

Localhostだけでアプリケーションを実行していて、まだ稼働していない場合、これを使用してメールを送信するのは非常に難しいと思います。

アプリケーションをオンラインにすると、この問題は自動的に解決されるはずです。しかし、ini_set()は実行時にphp.iniの値を変更するのに役立つと思います。

9
NullPoiиteя

まず、ローカルホストでSMTPを使用する必要はありません。ローカルホストのエントリをISPプロバイダー(メールの中継を許可する)からMTAのDNS名に変更すると、すぐに動作します。独自のメールサービスをいじっています。プロバイダーのSMTPサーバーを使用するだけで、すぐに機能します。

8
Glenn Plas

PHPメール機能は、2つのシナリオでメールを送信できます。

a。 UNIX経由でメールを送信してみてくださいsendmail program Linuxでは、プログラム "sendmail"が実行され、すべてのパラメーターがsendmailに送信されます。

OR

b。 メールサーバー(php.iniのsmtpプロトコルとHost/port/username/passを使用)に接続し、メールを送信します。

PHPが電子メールサーバーに接続できない場合、警告が表示されます(ログにそのような動作が表示されます)。 php.netで見つけることができるsmtpのセットアップ/構成方法

3
Maxim