27

PHP の mail() 関数を介して送信される電子メールの Return-Path 値を変更することは可能ですか?

私のサイトで送信する電子メールの値は「www-data@mydomain.com」であり、電子メール配信の失敗プロセスで問題が発生します。メールアドレスに設定したい。

私が試したコードは次のとおりです。

$headers = 'MIME-Version: 1.0' . "\n";
$headers .= "Content-type: text/html; charset=utf-8" . "\n";
$headers .= "Return-Path: <adminemail@yahoo.com>"."\n";
$headers .= "Errors-To: <adminemail@yahoo.com>"."\n";
// Additional headers
$headers .= "To: email1@yahoo.com <adminemail@yahoo.com>" . "\n";
$headers .= "From: adminemail@yahoo.com <adminemail@yahoo.com>";
// Mail it
mail('email1@yahoo.com', 'test', 'salam', $headers, "f");
4

3 に答える 3

47

以下のように、ヘッダーへの返信とリターンパスをヘッダーに設定できます

$headers = 'From: webmaster@example.com' . "\r\n" .
'Reply-To: webmaster@example.com' . "\r\n" .
'Return-Path: webmaster@example.com'

または、リターンパスを調整するための5番目のパラメータとして

mail($to, $subject, $message, $headers, "-f email@wherever.com");

ここで、email@wherever.comはメールに置き換える必要があります。

于 2012-09-16T10:12:23.613 に答える
5

問題は、メール形式ではヘッダーで\r\n行末を使用する必要があることです...そう\nではありません.一部のサーバーは両方を受け入れますが(それらを変換すると魔法のように機能するようです)、他のサーバーは末尾のないものを\r\n無効で基本的に無効と見なします.すべてのヘッダーを無視します。代わりに試してください:

$headers = "MIME-Version: 1.0\r\n".
   "Content-type: text/html; charset=utf-8\r\n".
   "Return-Path: adminemail@yahoo.com";
mail ("email1@yahoo.com","test","salam",$headers);

ちなみに、return-path は RFC1123 メールボックスを想定しています (山かっこなしで、電子メール アドレスのみ)。とても余計です)

于 2012-10-02T18:06:34.190 に答える