Autor Zpráva
Pavel Straka
Profil
Dobrý večer, rád bych požádal o radu zkušenějších, existuje možnost, jak, v případě, že neexistuje příjemce zprávy funkce mail, vrátit mail na adresu odesílatele se zprávou, že uživatel neexistuje?

Děkuji za ochotu pomoci.
Enko
Profil *
Doporučuju http://php.vrana.cz/kontrola-e-mailove-adresy.php od Jakuba Vrány. Ta druhá funkce ti reálně ověřuje zda emailová adresa příjimá emaily.
Davex
Profil
Pavel Straka:
v případě, že neexistuje příjemce zprávy funkce mail, vrátit mail na adresu odesílatele se zprávou, že uživatel neexistuje?
Toto se většinou děje standardně a není potřeba nic vymýšlet. Jen je potřeba umístit správnou adresu odesílatele do hlavičky From, Reply-To, případně Errors-To a vybírat tuto schránku.

Enko:
Ta funkce nebude správně fungovat vždy, protože některé poštovní servery přijmou e-mail i pro neexistujícího uživatele a odesílateli mohou poslat Non Delivery Report nebo e-mail zahodit.
Enko
Profil *
Davex:
Však ano a i s tímto se počítá. Viz * @return bool na adresu lze doručit zpráva, null pokud nejde ověřit


Vlastně spolehnout se na to na 100% nedá, ale mě se to s tímto zatím nestalo. Můj odhad pro české prostředí je více > 99%
Pavel Straka
Profil
Davex: Také jsem si myslel, že se tak děje "samo", ale přestože mám v hlavičkách správně vyplněno From i Reply-To (a teď jsem vložil Errors-To), žádný e-mail se mi nevrací, přestože zkouším posílat do neexistující schránky. Nerozumím tomu.

Enko: To je zajímavé, děkuji, přesto bych to ale raději vyřešil způsobem automatického vracení e-mailu.
Davex
Profil
Pavel Straka:
Poštovní servery se můžou zachovat různě. Když pošleš e-mail na existující adresu, tak e-mail přijde se správnými hlavičkami?
Rellik
Profil
Pavel Straka:
přestože zkouším posílat do neexistující schránky
Na to pozor. Ono poštovní server ale existovat musí. Jestli se to pokoušíš posílat do schránky třeba janevim@kamtoposlat.cz ,tak odpovědi se nedočkáš, protože emailový servr kamtoposlat.cz neexistuje a tak není odkud by chyba přišla. Musíš to zkoušet na nějaký existující email server pod nějakým nesmyslným nickem. Třeba 10221testset@seznam.cz Pak by mohla přijít odpověď. Mě chodí info o nedoručených emailech i když tam žádné zasílání erorů nastavené nemám...
Pavel Straka
Profil
Rellik: Ano, taky jsem si to uvědomil. :) Napřed jsem zkoušel něco, jak píšeš, pak jsem zkusil neexistující mail na Gmailu, ale mail se nevrátil ani v tom případě.


Mé hlavičky:
$hlavicky = "MIME-Version: 1.0\n";
      if ($html == 1) $hlavicky .= "Content-Type: text/html; charset=utf-8\n";
      else $hlavicky .= "Content-Type: text/plain; charset=utf-8\n"; 
      $hlavicky .= "From: $od\n";
      $hlavicky .= "Reply-To: $od\n";   
      $hlavicky .= "Errors-To: $od\n";
      $hlavicky .= "Cc:\n";
      $hlavicky .= "Bcc: $sk\n";
Rellik
Profil
No já mám script pouze:

$email = 'nejaky_email_kam_se_posle_zprava@sem.cz';
$subject = 'Předmět zprávy';
$message = 'Samotná zpráva.';
$headers = 'From: admin@veletiny.cz' . "\r\n" .
                                'Reply-To: admin@veletiny.cz' . "\r\n" .
                                'MIME-Version: 1.0' . "\n" . 'Content-type: text/plain; charset=UTF-8; Content-Transfer-Encoding: 8bit';
mail($email, $subject, strip_tags($message), $headers);
A info o nedoručené zprávě mi chodí pokaždé.
Davex
Profil
Pavel Straka:
Aby zpráva o nedoručitelnosti došla na správný e-mail, tak se musí využít pátý parametr funkce mail() a nastavit odesílatele, ale na více zabezpečeném webhostingu to nemusí fungovat.

mail($komu, $predmet, $zprava, $hlavicky, "-f $od");
Pavel Straka
Profil
Davex: To už funguje, děkuju.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

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