Autor Zpráva
Sylar
Profil
Zdravím,
zkouším rozchodit vracející se e-maily v případě, že nebyly doručeny, ale nějak se mi to nedaří.
Na posílání e-mailů mám fci
    function email($to, $subject, $text, $from_mail, $from = "", $html = false) {
      $subject = "=?utf-8?B?" . base64_encode($subject) . "?=";
      $header = "MIME-Version: 1.0\r\n";
      $header .= "Content-Type: text/" . ($html == true ? "html" : "plain") . "; charset=utf-8\r\n";
      $header .= "From: =?UTF-8?B?" . base64_encode((empty($from) ? $from_mail : $from)) . "?=<" . $from_mail . ">\r\n";
      $header .= "Return-Path: " . $from_mail . "\r\n";
      mail($to, $subject, $text, $header);
    }
Vše funguje OK, ale pokud e-mail pošlu na neexistující adresu, tak se mi nic nevrátí o tom, že nebyl doručen. Máte někdo odzkoušené fungování Return-Path nebo není nutné něco nastavit na serveru?
Dědek
Profil
Skript jsem vyzkoušel a mě funguje podle představy, ani nemusí být nastavena hlavička "return-path", stačí "from".

Zkusil bych ten mail poslat ručně, jestli se opravdu vrátí mail s chybovým hlášením?
Nepadá náhodou mail se zprávou o chybě do spamu?
Sylar
Profil
Dědek:
takže ty když pošleš přes tento script email na neexistující adresu tak se ti vrátí, že nebyl doručen?
Teď jsem to zkošuel poslat i ručně z outlooku a vrátilo se mi to prakticky okamžitě. Do spamu mě v outlooku to nepadá, jedině by to mohl zachycovat server, ale to by zřejmě zachytil i při tom ručním odeslání ... to jsem z toho jelen. Zkusím napsat podpoře hostingu, snad se mi k tomu nějak vyjádří.
Dědek
Profil
Ano, přesně tak - do $to dám neexistující adresu a během několika chvil mám v mailové schránce uvedené v $from_mail chybové hlášení.

P.S. zkoušeno na lokále, mailová schránka je gmail
Davex
Profil
Sylar:
Mám takové tušení, že tu adresu v Return-Path přepíše mailserver na e-mailovou adresu sendmail_from v konfiguraci PHP nebo uživatele pod kterým běží webserver, protože to je ten skutečný odesílatel. Pošli si e-mail na funkční adresu a podívej se na hlavičku. Nemáš-li na serveru zapnutý safe_mode, tak zkus využít pátý parametr funkce mail(): "-f$from_mail".

Dědek:
Asi ti to funguje, protože to zkoušíš na Windows, kde by se měla hlavička Return-Path nastavovat na stejnou hodnotu jako je From. Na Linuxu funguje posílání e-mailů z PHP jinak.
Dědek
Profil
Davex:
Máš absolutní pravdu, zkusil jsem to pod Linuxem a opravdu došlo k přepsání hlavičky Return-Path podle konfigurace PHP :(
Sylar
Profil
Davex:
máš pravdu, jedinou možností je vypnout save_mode a použít pátý parametr u mail()

díky oběma

Vaše odpověď

Mohlo by se hodit

Odkud se sem odkazuje


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: