4

これは簡単に修正できると確信している問題ですが、私は一日中頭を悩ませてきました。

私はクライアントのために新しいウェブサイトを開発しています。Web サイトは (これは一例です) website.com にあります。訪問者のリクエストを requests@website.com に電子メールで送信するための PHP フォーム スクリプトがあります。

これを別のドメインのステージング サーバーでコーディングしたところ、すべて正常に動作しました。それを website.com に移動したところ、メール メッセージが届きませんでした。Web サーバーは、大手 ISP の仮想ホスト上にあります。

それ以来、私が学んだことは次のとおりです。私のクライアントのメール サーバーは、物理的にオフィスにあるボックス上の Microsoft Exchange です。外の世界の誰かが requests@website.com にメールを送信すると、メールが届きます。 しかし、Web サーバーが同じメール アドレスに送信すると、毎回失敗します。これはPHP の問題ではありません。シェルを Web サーバーに安全に接続し、sendmail と UNIX メール アプリケーションの両方でこれをテストしました。また、シェルからさまざまな電子メール アカウントに電子メールを送信してテストしました。たとえば、website.com ドメインの誰にもメールを送信できません。

つまり、website.com にログインすると、requests@website.com、user@website.com、another_user@website.com へのメールはすべて失敗します。他のすべてのアドレスは正常に機能します。私が発見したのは、これらのドロップされた電子メールは、受信トレイにある Web サーバーの「キャッチオール」アカウントにルーティングされるということです。

website.com で MX ルックアップを実行しました。MX レコードは、mailsec.website.com を指しています。mailsec.website.com ポート 25 に telnet で接続し、SMTP サーバーを確認できます。

requests@website.com にメールを送信するときに、website.com が MX ルックアップを行っていないように見えます。私の理論では、ドメインをローカルとして認識し、配信先の「リクエスト」ユーザー アカウントがないことを確認し、メールをキャッチオール アカウントにドロップするというものです。私が望むのは、sendmail に強制的に MX ルックアップを実行させ、メッセージを Exchange サーバーに送信させることです。私はここで機知に富んでいます。これを行う方法がわかりません。

さらに言えば、私はここでベースから外れており、これを完全に誤診している可能性があります. インターネット メールと MX は常に黒魔術のように思われてきましたが、私の無知がこの質問で明らかになりました。

4

7 に答える 7

9

問題は、sendmail (あなたのプロセス) がローカルの sendmail デーモンと通信していることだと思います。ローカルの sendmail デーモンは、それが website.com であるため、電子メールの配信方法を知っているはずだと考えます。残念ながら、to フィールドの実際のアドレスは Web サーバー上に存在しないため、「キャッチオール」メール ボックスにダンプされます。...@website.com 宛てのメールがローカルで処理されるのではなく、メール エクスチェンジャーに転送されるように、ISP に連絡して sendmail の構成を更新してもらう必要があります。

于 2008-11-27T02:28:22.017 に答える
1

tvanfosson は基本的にこれを持っていますが、一時的な回避策として、'user@mailsec.website.com' にメールを送信するようにスクリプトを変更すると、メールが実際のメール サーバーに配信されるようになります。

于 2008-11-27T03:44:51.953 に答える
0

私にとってうまくいったのは、元のドメインネームサーバーに割り当てられたホストを指す、WebサイトをホストしているWebサーバーにMXレコードを追加することでした。ここに示されているケースでは、mailsec.website.comを指すmxレコードになります。

于 2011-01-01T22:49:46.583 に答える
0

tsm.cf ファイル (/etc/mail/ など) を編集して、以下を含めます。

FEATURE(relay_entire_domain) 

DOMAIN() と MAILER() 行の間。ファイルを編集しているので、セキュリティを向上させることもできます

define(`confPRIVACY_FLAGS',``noexpn,novrfy'')

tsm.cf ファイル (または任意のsendmail 構成ファイル) を変更した後、sendmail プロセスを再起動または SIGHUP します。

この変更が必要なのは、ドメインの WWW サーバーと MX サーバーが同じプロセス空間に存在しないためです。この FEATURE は、sendmail をトリガして、その外部配信メカニズムを使用してドメインのメッセージを処理します。

tsm.cf ファイルの編集部分は次のようになります。

DOMAIN(website.com)dnl
FEATURE(relay_entire_domain)dnl
define(`confPRIVACY_FLAGS',``noexpn,novrfy'')dnl
MAILER(smtp)dnl
MAILER(procmail)dnl
于 2009-04-01T13:41:59.157 に答える