Можно ли изменить значение возвращаемого пути в сообщениях электронной почты через функцию mail () PHP?
Это значение является «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");
Вы можете задать ответ и вернуть путь в заголовки, как показано ниже.
$headers = 'From: webmaster@example.com' . "\r\n" . 'Reply-To: webmaster@example.com' . "\r\n" . 'Return-Path: webmaster@example.com'
ИЛИ как пятый параметр для настройки пути возврата
mail($to, $subject, $message, $headers, "-f email@wherever.com");
где email@wherever.com должен быть заменен вашей почтой.
Проблема в почтовом формате требует, чтобы заголовки использовали концы строк \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 (без угловых скобок, только адрес электронной почты) … не уверен, почему вы хотите установить обратный путь, как в вашем примере, так как он совпадает с адресом from ( так лишний)