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]
ラップトップをサーバーとして使用しています。何が間違っていますか?ありがとう。
メールサーバーをローカルで実行する必要があります。これがUnixの場合、sendmailを有効にします。これがWindowsの場合、IIsのSimple Mail Transfer Server(名前が正しいかどうかわからない)コンポーネントをインストールします。例えば。 Windows 2003の場合は、これに従います。 http://msdn.Microsoft.com/en-us/library/8b83ac7t.aspx
PHPを使用してメールを送信するには、メール機能が使用されます。ただし、メール機能では、メールを送信するためにSMTPサーバーが必要です。 php.iniファイルでSMTPホストとSMTPポートを指定する必要があります。 SMTPサーバーの構成が成功すると、メールはphpスクリプトを介して正常に送信されます。
Windowsでは、ほぼすべてのAMPP(Apache、MySQL、PHP、PHPmyAdmin)パッケージにメールサーバーが含まれていません(ただし、ほぼすべての裸のLinuxにはあります!)。したがって、WindowsでPHPを使用する場合は、メールサーバーをセットアップする必要があります。
Imoの最も簡単でシンプルなツールは次のとおりです。 http://smtp4dev.codeplex.com/
SMTP4Devは、送信するメールを収集するシンプルな1ファイルメールサーバーツールです(したがって、実際にメールを送信するのではなく、開発のために保持するだけです)。完璧なツール。
Localhostだけでアプリケーションを実行していて、まだ稼働していない場合、これを使用してメールを送信するのは非常に難しいと思います。
アプリケーションをオンラインにすると、この問題は自動的に解決されるはずです。しかし、ini_set()
は実行時にphp.ini
の値を変更するのに役立つと思います。
まず、ローカルホストでSMTPを使用する必要はありません。ローカルホストのエントリをISPプロバイダー(メールの中継を許可する)からMTAのDNS名に変更すると、すぐに動作します。独自のメールサービスをいじっています。プロバイダーのSMTPサーバーを使用するだけで、すぐに機能します。
PHPメール機能は、2つのシナリオでメールを送信できます。
a。 UNIX経由でメールを送信してみてくださいsendmail program Linuxでは、プログラム "sendmail"が実行され、すべてのパラメーターがsendmailに送信されます。
OR
b。 メールサーバー(php.iniのsmtpプロトコルとHost/port/username/passを使用)に接続し、メールを送信します。
PHPが電子メールサーバーに接続できない場合、警告が表示されます(ログにそのような動作が表示されます)。 php.netで見つけることができるsmtpのセットアップ/構成方法