Nefunkční funkce mail()
Dobrý den,
prosím, mám u Vás zařízený webhosting a řeším problém ohledně formuláře a využití funkce php mail(). Vše se zdá, že odešle – žádná chyba, ale mail nepřijde.
$to = "xxxxx@outlook.cz"; $subject = "test"; $txt = "test2; $headers = "From: info@moje_domena_na_wedosu.cz"; mail($to,$subject,$txt,$headers);
Děkuji za každou radu
6 Answers
Vlákno nyní uzavírám z důvodu neaktivity. V případě potřeby založte nový dotaz nebo nás kontaktujte pomocí kontaktního formuláře.
Ak je mail poslaný funkciou mail, tak outlook ho dosť často blokuje. Aj som to s nimi riešil, ale vždy to časom dopadlo rovnako.
Riešením je posielanie mailov cez SMTP, napr. cez skript PHPMailer
Dobrý den.
chyba bude pravděpodobně v nastavené doméně odesílatele/Return-Path, adresu odesílatele zkuste v mail funkci dopsat dle WMS – odesílání e-mailů pomocí mail().
Tedy funkce pak obecně vypadá např. takto
<?php mail('adresa@prijemce.tld','Předmět','Text zprávy','','-f adresa@odesilatele.tld'); ?>
Tak jsem zjistil, že funkce funguje jen na určité domény – gmail v pohodě, outlook ne
V vašem přiloženém kódu se žádná chyba zobrazit nemusí.
Testněte tento php kód jestli se změní výsledek.
<?php // zapnuti zobrazeni chyb ini_set( 'display_errors', 1 ); error_reporting( E_ALL ); // parametry pro e-mail $from = "test@hostinger-tutorials.com"; $to = "test@hostinger.com"; $subject = "Checking PHP mail"; $message = "PHP mail works just fine"; $headers = "From:" . $from; // pokus o odeslani e-mailu if(mail($to,$subject,$message, $headers)) { echo "e-mail odeslan."; } else { echo "e-mail neodeslan."; } ?>
Jeden z důvodů může být chybně/nedostatečně vyplněná hlavička.
Dalším důvodem neodeslání e-mailu je max. denní limit 500 e-mailů.
Doporučil bych spíše změnit php kód na odeslní pomocí SMTP.
UP $to = "xxxxx@outlook.cz"; $subject = "test"; $txt = "test2"; $headers = "From: info@moje_domena_na_wedosu.cz"; mail($to,$subject,$txt,$headers);