0

Linux Web ホスティング パッケージで PHP を使用して Web サイトを作成しました。通常、PHP の Mail() 関数によって作成された連絡フォームから送信された電子メールを受け取ります。しかし、今回は私にとっては奇妙なケースです。
私の顧客の会社にはメールサーバーがあります。Gmail の個人用メールでメールを送信すると、相手のメール サーバーに届きます。しかし、連絡先フォームからメールを送信すると、メールは Web サイト ホスティング パッケージの Web メールに送信されます。
このホストのすべての電子メール アカウントを削除し、DNS MX レコードも削除しましたが、会社のメール サーバー アカウントで連絡フォームから送信された電子メールを受信できません。

どうすればこの問題を解決できますか?

4

3 に答える 3

1

ご質問のとおり、ウェブショット プロバイダーはメール ホスティング プロバイダーでもあります。あなたが問題を説明した方法は、あなたの PHP スクリプトがメールを送信するために内部的に MTA (sendmail のような) を呼び出す mail() 関数を使用しているという結論に私を導きます。

ここで起こっているように見えるのは、PHP が mail() 関数を介してメールを送信し、それがローカル構成をチェックしているローカル MTA (sendmail など) に渡されていることです。ローカル構成では、受信者ドメインがローカル ドメインとして検出され、メールがユーザーにローカルに配信されるようです。この場合、電子メールはウェブホスティング業者のサーバーから出ることさえありません。

これはあなたが期待するものではないので、MTA の構成に影響を与えない場合 (私はあなたが持っていないと思うもの)、2 つの可能性があります。

  1. (可能であれば) mail() 関数を使用しないことをお勧めします。あなたのサービスのSMTPサーバーに接続して電子メールを送信するSMTPクラスを使用する準備ができています. そうすれば、この問題を回避できます。PHP Classes Repositoryで何かを見つける必要があります。

  2. 可能であれば、別のドメインにメールを送信してください。このように、MTA は DNS をチェックし、電子メールを別の SMTP サーバーに送信して配信する必要があります。

于 2013-07-16T13:50:48.817 に答える
0

最初に確立することは、メールの送信方法 (sendmail または SMTP) です。次に、メールが a) まったく送信されないか、b) 送信先のメール サーバーによって拒否されるか。

利用可能なすべてのログ (送信元および送信先のメール サーバーとデーモン) を確認します。mail() 自体がエラーになっているかどうかを確認します。sendmail/smtp を直接使用してみてください。

宛先サーバーがスパム スコアに基づいてメールを拒否している場合は、SPF レコードを設定して、Web サーバーがメールを合法的に送信できるようにしてください。

于 2013-07-16T13:35:56.230 に答える
0


メール機能「mail($to,$subject,$message)」が機能しない場合は、サーバーの設定を確認する必要があります。今それは有効かどうかです。詳細については、
こちらを参照してください: https://wycks.wordpress.com/2013/10/09/when-phps-mail-function-doesnt-work/

于 2015-04-24T07:26:35.253 に答える