PHPのmail
機能は、クリーンなシステムでメールを配信しているようですが、管理者またはウェブマスター(明らかに、php.ini
などのSMTP設定なし)で設定されていません。 mail
機能は、リモートサーバーにメールをどのように配信しますか?PHPの `mail`はどのように動作しますか?
答えて
オン* nixは、sendmail
バイナリを呼び出し、メール設定を使用して電子メールをルーティングします。 Windowsでは、SMTPサーバーに送信します。どちらの場合も、sysadminはメールシステムを設定します。
私が尋ねた質問にお返事いただきありがとうございます。 PHPがリモートサーバー自体に接続してSMTPを処理していたかどうか、またはローカルサーバー上のMTAにそのタスクを渡したかどうかはわかりませんでした。また、なぜこの質問が下落しているのか知っていますか?私は多くの人々がそれを単に誤解していると思います。それは([FAQ](http://stackoverflow.com/faq)で定義されているように)サイトの範囲に適合しているようです。 –
@トム:人々は質問ではなく言葉に固執しています。 –
問題を修正するための質問を修正しました。私はそれについて「あいまいで、あいまいで、不完全で、過度に広い、または修辞的である」ことを理解していません。私はPHPチャットルームで尋ねようとしましたが、そこにモデレーターはいなかったか、彼らの誰も答えませんでした。サイトについて知る良い場所はありますか? –
基本的にsendmail
などが正しく設定されていない限り、実際にはそれほど信頼性がありません。
Amazon SESは、使用しているサーバーよりも優れたサーバーを持ち、mail()
を使用した場合よりも多くの時間にメールを取得します。
mail()
を使用すべきでない本当の理由は、あなたのサーバのIPアドレスがGMailやYahooなどのメールサービスでは完全に不明で、スパムとしてマークされる可能性が高いからです。なぜスパムとしてマークされますか? mail()
は非常に簡単であり、スパムの目的で悪用するのが簡単です。
これは本当に質問に答えるものではありません。どのように機能するのですか?私は他のもののためにSESを使う。これは単に設定なしのクリーンインストールでどのように動作するのか、なぜスパムとマークされているのか、代わりに使うべきなのかを知りたいだけでした。しかし、答えをありがとう。 –
sendmail。 /会話。 – David
mail()は、DNSを使用してターゲットドメインのMXレコードを検索し、そこで直接配信するsendmailを使用します。それでおしまい。
宛先サーバーはおそらくあなたのIPアドレスを知らないので、特にNATされていると、迷惑メールとしてマークされる可能性があります。
あなたの設定を変更して、異なる(正当な知られている)smtpサーバーを仲介者として使用することができます。
以下のように動作します。
上記コマンドの結果から、第一の方法
$ ltrace php -r "mail('[email protected]', 'Test', 'Hello world');" 2>&1 | grep sendmail
memcpy(0x095ea168, "sendmail_from", 14) = 0x095ea168
memcpy(0x095ea1e0, "sendmail_path", 14) = 0x095ea1e0
popen("/usr/sbin/sendmail -t -i ", "w") = 0x0977c7c0
はpopen()
関数/usr/sbin/sendmail -t -i
のプロセスを開くことがわかります。
$ ls -l /usr/sbin/sendmail
... /usr/sbin/sendmail -> exim4
だからsendmail
はexim4
へのシンボリックリンクであるためsendmail -t -i
はexim4 -t -i
を呼び出します。
そして、あなたはこれらのオプション-t -i
について読むことができますexim4
のマニュアルページで:
$ man exim4 | grep ' -t -i'
-ti This option is exactly equivalent to -t -i. It is provided for compatibility with Sendmail.
第二の方法
はsnoopyをインストールし、実行します。
# grep snoopy /var/log/auth.log | tail
... php -r mail('[email protected]', 'Test', 'Hello world');
... /usr/sbin/sendmail -t -i
... /usr/sbin/exim4 -Mc 1YxxYn-0006a7-Nw
... /usr/sbin/exim4 -t -oem -oi -f <> -E1YxxYn-0006a7-Nw
... /usr/sbin/exim4 -Mc 1YxxYn-0006aB-Oj
上記のコマンドの結果実行されたコマンドのシーケンスを示します。
- 1. PHP Mail attechmentは動作しません
- 2. PHPは "リモートインクルード"とはどのように動作しますか?
- 3. pcntl_forkはどのようにPHPで動作しますか?
- 4. FirebaseはどのようにPHPで動作しますか?
- 5. PHPでルーティングはどのように動作しますか?
- 6. PHPオートローダーはどのように動作しますか
- 7. phpのmail()がlocalhostに配信しようとしますか?
- 8. Meteorはどのように動作しますか?クライアントとサーバーはどのように動作しますか?
- 9. PHP PDO :: bindParam()データ型..どのように動作しますか?
- 10. php mail()は動作しませんが、sendmailは動作しません。
- 11. php mail()関数が動作しない
- 12. 配列の配列はどのようにPHPで動作しますか?
- 13. このStrPosはどのようにPHPで動作しますか?
- 14. AJAXはSAJAXでPHPでどのように動作しますか?
- 15. Facebook PHP SDK v5 getAccessToken()関数はどのように動作しますか
- 16. html/phtmlファイルはどのようにphpファイルで動作しますか?
- 17. 私のホスト上でPHP - mail()関数が動作しません
- 18. PHP mail()関数が正常に動作しません
- 19. Facebookのprofile.php?= idはどのように動作しますか?
- 20. http://qwebirc.org/はどのように動作しますか?
- 21. Java JVMはどのように動作しますか?
- 22. tf.train.Saverはどのように正しく動作しますか?
- 23. LINQ IEnumerableはどのようにして動作しますか?
- 24. Hibernateコールセパレーションジェネレータはどのようにして動作しますか?
- 25. Makefileでは、VPATHはどのように動作しますか?
- 26. .gitconfigの[github]セクションはどのように動作しますか?
- 27. Javaのガベージコレクタはどのように動作しますか?
- 28. listViewのsetListAdapter(Arrayadaper)はどのように動作しますか?
- 29. jQueryの.delayメソッドはどのように動作しますか?
なぜ設定を完了する必要がありますか?ウェブマスターにメールを配信することを意味しない限り、ウェブマスターが設定することは意味がありません。 – 11684
あなたは間違った質問をしています - PHPのmail()関数には何も問題はありません - それは信頼できません。問題は、メールの内容と配信です。より良い質問は、「私のメールがスパムフォルダで終わるのを避けるにはどうすればいいですか?」です。 – Repox
彼は「信頼できる」と言ったが、これは本当に質問ではない...ここ – Alex