2

私はwampサーバーを使用していて、PHP関数を使用して電子メールを送信しようとしてmail('me@ISPdomain.com','my subject','my body');
ます。次の設定を使用しますphp.ini

SMTP = 'ISP's SMTP server'  
smtp_port = 25 

しかし、私はメッセージを受け取ります:

Warning: mail() [function.mail]: SMTP server response: 550 5.7.1 Relaying not allowed. Please use SMTP Authentication.

これはどのように解決できますか?

4

3 に答える 3

5

あなたの ISP のメール サーバーは「中継」を許可していません。

http://en.wikipedia.org/wiki/Open_mail_relay

オープン メール リレーとは、既知のユーザー宛または送信元のメールだけでなく、インターネット上のすべてのユーザーが電子メールを送信できるように構成された SMTP サーバーです。これは、多くのメール サーバーで既定の構成でした。実際、それはインターネットが最初に設定された方法でしたが、オープン メール リレーはスパマーやワームによる悪用により人気がなくなりました。多くのリレーが閉じられたか、他のサーバーによってブラックリストに登録されました。

ISP のメール サーバーを利用できるようにするには、まずユーザー名とパスワードで認証する必要があります。

次のような php.ini 行のハックを試すことができます。

SMTP = 'username:password@ISP's SMTP server address'

このオプションは非標準の変更またはメール サーバーでのオプションの設定を必要とするため、これが機能する保証はありません。

もう 1 つのオプションは、認証を必要としない独自のローカル プロキシ メール サーバーを実行することです。これにより、メールは受信者のメール サーバーに直接送信されるか、メール サーバーへの認証済み接続を介して送信されます。

WampServer で推奨されるものはわかりませんが、WampDeveloper Proで推奨されるローカル メール サーバーは次のとおりです。

  1. hmailserver
  2. 郵送可能
  3. Smartermail

それぞれの機能と要件を確認する必要があります。そのうちの 1 つが MySQL に干渉する可能性があると思います (インストーラーが独自のコピーを配置しようとするため)。

于 2011-05-23T14:28:35.420 に答える
1

ISPdomain.com SMTPサーバーは、接続がスパム対策ルールに対して基本的すぎると不平を言っている可能性があります。

于 2011-05-23T11:20:19.747 に答える
1

エラー メッセージにあるように、そのサーバーには SMTP 認証を使用する必要があります。

これは、PHP の組み込み SMTP 機能を使用して行うことはできません。

最も簡単な方法は、 Swiftmailerのような既製のメーラー クラスを使用することです。これを行う方法の例を次に示します。

于 2011-05-23T11:25:11.163 に答える