2

私はこれをテストしました:

<?php
 $to = "recipient@example.com";
 $subject = "Hi!";
 $server = $_SERVER['HTTP_HOST'];
 $body = "From: ". $server. "<br>";
 $body .= "Hi,\n\nHow are you?";
 if (mail($to, $subject, $body)) {
   echo("<p>Message successfully sent!</p>");
  } else {
   echo("<p>Message delivery failed...</p>");
  }
 ?>

「正常に完了しました」というフィードバックが表示されますが、これによりメールが送信されることはありません。コードは機能します(実際に送信された電子メール)が、インクルードを削除した場合

$server = $_SERVER['HTTP_HOST'];

メール本文に。

非常に奇妙です、それは意味がありませんか?

これは単なる PHP ページです。このページをブラウザから呼び出します!! してみてください ...

アップデート!!$_SERVER['HTTP_HOST'] を使用する代わりに、文字列 "user.server.com" を直接使用します。そして、うまくいきませんでした!! しかし、「user.server.com.us」のように文字列を少し変更すると、機能します!! したがって、基本的に、メールサーバーはそのドメインへの独自の参照をフィラーしますが、なぜこれを行うのかわかりません...

4

3 に答える 3

0

一部のスパム サーバーは、本文の URL についてメッセージを「スパム」と評価します。mail()残念ながら、送信者と受信者のメール サーバー ログにアクセスできない限り、より具体的なエラー メッセージを見つけるのは難しいでしょう。より良いサポートのために、SwiftMailer または別の PHP Mailing ライブラリを提供してください。

于 2012-07-18T20:24:36.680 に答える
0

mail() 関数を使用する場合、'From' ヘッダーを指定する必要があります。このドキュメント ページを参照して、「additional_headers」パラメータのメモ セクションを探してください。

したがって、mail() 呼び出しは次のようになります。

mail($to, $subject, $body, 'From: some.guy@example.com');

于 2012-07-18T20:38:20.963 に答える