2008-09-02 5 views
6

私はここで正しい用語を使用しているとは思わないので、許してください。MXレコードを所有していないとPHP mail()関数が機能しますか

PHP mail()関数を使用して電子メールを送信する連絡先フォームを持つサイトを作成するだけです。十分に簡単です。ただし、実際のサイトでは電子メールを実際に送信しないため、テストサイトではそのように扱います。だから私のコードではありません。

これは共有ホストであり、完全に機能する同じ機能を持つ別のサイトがあるため、サーバーではありません。

2つの唯一の違いは、機能しないサイトではネームサーバーが私たちを指しているため、MXレコードが決してサーバーに触れないことです。

私の質問は、私たちのサーバーを指すMXレコードがないとmail()関数が動作しないことを確認してください。ありがとう

答えて

2

お返事ありがとうございました。本当に感謝しています。

数ヶ月間問題を無視した後、再び問題が発生しましたが、問題の答えが見つかりました。

まず、あなたが示唆したように、PHPとmail()関数は期待通りに動作していました。メールが送られてきました。

問題は、電子メールが送信されたときに、mydomain.comから*@mydomain.comに電子メール自体が同じサーバーでホストされていることを電子メールで送信するため、 MXレコードを無視します。

OKこれはもう少し複雑ですが、それは一般的なジストです。

編集: トピックのより良いバージョンが見つかりましたsendmail and MX records when mail server is not on web host

0

はい、あなたはあなたが 'から'フィールドにしたいことを入れて、それはまだ動作します。

3

はい。それは正常に動作します。 Google Appsに設定されたMXレコードでmail()関数を使用するPHPスクリプトがあります。

2つのスクリプトが異なるホストにある場合(投稿とは少しはっきりしていません)、ホストがカスタムヘッダーの一部をブロックしていないことを確認してください。私はスクリプトを作成するときにこれに問題がありましたが、Fromヘッダー以外のすべてを削除すると問題が解決しました。

2

いくつかのホスト(Godaddyが最悪です)は、sendmailとmail()の使用をブロックします。

私は通常、私のPHPアプリケーションからメールを送信するためにsmtpを使用しています。PHPMailerはとても簡単です。多くのアプリケーションで古いバージョンのPHPMailerが使用されています。短いスクリプトにすばやく追加するだけでも簡単です。

1

mail()関数は、スクリプトをホストしているサーバーからメールを送信します。多くの共有ホスティングプロバイダは別々のメールサーバーをホストしており、mail()関数はどのような種類の認証もサポートしていないため、多くの共有ホスティングプロバイダがそれをブロックします。

1

サイトでSPFを使用している場合は、SPFレコードに送信サイトを含めるようにしてください。詳細はhereを参照してください。

関連する問題