Изменение пути возврата в функции почты PHP
Можно ли изменить значение возвращаемого пути в сообщениях электронной почты через функцию mail() PHP?
Это значение является "[email protected]" в сообщениях электронной почты, которые я отправляю на своем сайте, и это вызывает некоторые проблемы при сбое процесса доставки по электронной почте. Я хочу установить его на свой адрес электронной почты.
Вот код, который я пробовал:
$headers = 'MIME-Version: 1.0' . "\n";
$headers .= "Content-type: text/html; charset=utf-8" . "\n";
$headers .= "Return-Path: <[email protected]>"."\n";
$headers .= "Errors-To: <[email protected]>"."\n";
// Additional headers
$headers .= "To: [email protected] <[email protected]>" . "\n";
$headers .= "From: [email protected] <[email protected]>";
// Mail it
mail('[email protected]', 'test', 'salam', $headers, "f");
Ответы
Ответ 1
Вы можете установить ответ и вернуть путь в заголовки, как показано ниже
$headers = 'From: [email protected]' . "\r\n" .
'Reply-To: [email protected]' . "\r\n" .
'Return-Path: [email protected]'
ИЛИ
как пятый параметр для настройки обратного пути
mail($to, $subject, $message, $headers, "-f [email protected]");
где [email protected] должен быть заменен вашей почтой.
Ответ 2
Проблема в формате почты требует, чтобы заголовки использовали концы строк \r\n
... not \n
, трюк с этим - некоторые серверы будут принимать оба (конвертировать их для вас, и, похоже, это работает магически), в то время как другие будут рассмотрите те, у которых \r\n
endings недействительны, и в основном игнорируйте все ваши заголовки. Попробуйте вместо этого:
$headers = "MIME-Version: 1.0\r\n".
"Content-type: text/html; charset=utf-8\r\n".
"Return-Path: [email protected]";
mail ("[email protected]","test","salam",$headers);
Кстати, return-path ожидает почтовый ящик RFC1123 (без угловых скобок, только адрес электронной почты)... не уверен, почему вы хотите установить обратный путь, как в вашем примере, так как это то же самое, что и от адреса (поэтому лишнего)
Ответ 3
Просто определите Return-Path
$returnPath = "[email protected]"; //-f will do the job
mail('[email protected]', 'test', 'salam', $headers, $returnPath);