Параметр PHP mail () -f НЕ работает

Я исследовал это интенсивно. Здесь, в Stack Overflow, я выяснил, что нужно использовать параметр -f с функцией php mail (), если вы хотите вернуть недостижимую почту обратно. Ниже приведен мой сценарий (как сейчас):

//Send Confirmation email. Following are the variables for the email // mail function best practices: http://collaborate.extension.org/wiki/Best_Practices_Using_the_PHP_mail_Function $sendto = $email; // this is the email address collected from the foreach routine. $e_subject = stripslashes($subject); // Subject //$message = "<html>" . stripslashes($body) . "</html>"; $message = " <html> <body> <p>Hello " . stripslashes($fName) . ":</p> <div>" . stripslashes($body) . "</div> </body> </html> "; // Always set content-type when sending HTML email $header = "MIME-Version: 1.0" . "\r\n"; $header .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";; // extract user domain so you can set up X-Mailer $u_domain=substr(strrchr($user_email, '@'), 1); $dom_array = explode(".",$u_domain); $user_domain = $dom_array[0]; $header .= "X-Mailer: ". $user_domain ."\r\n"; $header .= "X-Sender-IP: {$_SERVER['REMOTE_ADDR']}\r\n"; $header .= "X-Originating-IP: [".getenv("REMOTE_ADDR")."]\r\n"; $header .= "From: " . $user_email . "\r\n"; $header .= "Sender: ". $user_email . "\r\n"; // The "envelope sender" is the address listed in the "Return-Path:" header - and controls where the email is sent to in the event that a recipient address bounces. http://collaborate.extension.org/wiki/Best_Practices_Using_the_PHP_mail_Function $header .= "Return-Path:" . $user_email . "\r\n"; $header .= "Reply-To:" . $user_email . "\r\n"; $bounceTo = "-f". $user_email; // Collect variables from above and insert into the mail() function. mail($sendto, $e_subject, $message, $header,$bounceTo); 

Вы заметите много комментариев – я просто пытаюсь понять это. Моя почта () отправляется чудесно. Почта входит в мой почтовый ящик с форматированием, как и должно быть. Но … переменная $ bounceTo ("-f". $ User_email) не работает. Я намеренно отправил по почте 3 известных неактивных адреса, и я не получаю отскоков назад.

Все настройки заголовка в приведенном выше коде находятся на месте, потому что я узнал, что они могут повлиять на возврат. Я полностью готов избавиться от ненужных заголовков и добавить то, что необходимо. Но … в этот момент сценарий кажется беспорядочным, что не создает отказов.

Любые предложения приветствуются.

Большое спасибо:

Павильон

Вы просмотрели комментарий, опубликованный по адресу http://www.php.net/manual/en/function.mail.php#107321 . Это может привести вас в правильном направлении.

Этот поток, объясняющий отскок почты в php, может принести вам пользу. Мне лично никогда не приходилось использовать параметр -f для обработки возвращенных писем.

Переопределение адреса отката с -f не разрешено на всех серверах, особенно если вы находитесь на общем сервере хостинга, это часто невозможно. В этом случае часто лучше не использовать очень ограниченную функцию mail (), но вместо этого используйте библиотеку smtp, такую ​​как phpmailer или swiftmailer .

Btw: вам не нужно отправлять письма на неактивный адрес, чтобы проверить ваш адрес отказов. Отправьте их в активную учетную запись, в источнике сообщений найдите заголовок «Return-Path», это адрес отката.