Autor Zpráva
pavelrejha
Profil
Zdravím všechny chytřejší :-)

Můj poskytovatel webového prostoru se spojil s jinou firmou a od té doby mi nefunguje tento formulář, formulář se tváří, že odeslal mail, ale žádný nepřijde.

Prý si musím založit email s koncovkou svého webu a dát ho jako odesílatele do tohoto php, aby nebyl anonymní, zkoušel jsem snad všechno a pak už nefunguje nic.

Může mi prosím někdo polopaticky poradit, kam to mám zakomponovat?

Předem děkuji za jakoukoliv radu!


<?php

function autoUTF($s)
{
    if (preg_match('#[\x80-\x{1FF}\x{2000}-\x{3FFF}]#u', $s))
    {
        return $s;
    }
    elseif (preg_match('#[\x7F-\x9F\xBC]#', $s))
    {
        return iconv('WINDOWS-1250', 'UTF-8', $s);
    }
    else
    {
        return iconv('ISO-8859-2', 'UTF-8', $s);
    }
}
 
function cs_mail($to, $predmet, $zprava, $head, $email = "")
{
    $predmet = "=?utf-8?B?".base64_encode(autoUTF($predmet))."?=";
    $head .= "MIME-Version: 1.0".PHP_EOL;
    $head .= "Content-Type: text/plain; charset=\"utf-8\"".PHP_EOL;
    $head .= "Content-Transfer-Encoding: base64".PHP_EOL;
    $zprava = wordwrap(base64_encode(autoUTF($zprava)), 78, PHP_EOL, true);
    return mail($to, $predmet, $zprava, $head, $email);
}
?>
<?php
$mail = 'neco@neco.cz';
$predmet = $_POST['predmet'];
$email = $_POST['email'];
$zprava = $_POST['zprava'];
 
if (cs_mail($mail, $predmet, $zprava, "From: $email".PHP_EOL))
{
    echo 'odesláno';
}
else
{
    echo 'neodesláno';
}
?>
Kajman
Profil
Zkuste tedy jejich radu a email z formuláře nepoužívejte ve from, ale např. v reply-to...

if (cs_mail($mail, $predmet, $zprava, "From: vasemail@vasedomena.cz".PHP_EOL."Reply-To: $email".PHP_EOL))
anonym_
Profil *
pavelrejha:
Já bych doporučil místo odesíláni nespolehlivou funkci mail stáhnout nějakou knihovnu, která to nastavení udělá za tebe. Třeba phpmailer, má dobrou dokumentaci a jeho použití je otázka chvilky.
pavelrejha
Profil
Kajman: Je to prosím jediné co se tam má změnit? Neboť to stále nefunguje... Děkuji.
Kajman
Profil
Ještě můžete zkusit from vynechat úplně. Pokud to nebude fungovat ani potom, kontaktujte opět podporu, že změna odesílatele nepomohla.
anonym_
Profil *
pavelrejha:
Tenhle způsob odesílání mailů byl nespolehlivý už před 15 lety. Fakt si stáhni např. github.com/PHPMailer/PHPMailer, máš tam i hafo examplů. Nejbezpečnější z pohledu doručení je samozřejmě možnost, že se k odesílateli připojíš jménem a heslem, to je tenhle příklad: github.com/PHPMailer/PHPMailer/blob/master/examples/smtp.phps
pavelrejha
Profil
Kajman: bohužel, nefunguje. Provozovatel - není to náš problém, ale Váš. Nebudu hatit tu společnost, ale vždy to fungovalo a najednou s jejich migrací to nefunguje a je to můj problém, super. Technická podpora - mi tu nemáme žádného programátora, jako fakt? Mě to přijde, jakoby měli odesílání mailu z webu zakázaný či co, když to dám na nějaký free prostor, žádný problém tam není.

anonym_: zkusím, ale jak na to koukám, no nazdar.
tttttt
Profil *
pavelrejha:
Nemyslím, že mají maily zakázané, pravděpodobně bojuješ se spam filtry. Cílový server ten e-mail považuje za spam a zahodí ho, v lepším případě jen dá da spamu.Zkus poslat testovací mail na www.mail-tester.com, jestli dojde a s jakým výsledkem. Tedy pokud to chceš zkoumat, velmi pravděpodobně jen zjistíš, že chceš použít PHPMailer.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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

0