Autor | Zpráva | ||
---|---|---|---|
Daidalos Profil |
#1 · Zasláno: 30. 3. 2013, 15:26:14
Ahoj všichni, zrovna řeším menší problém. Dělám si web na maturitku a mám tu problém s funkcí mail(). Ta maily odesílá, třeba na seznam příjdou hned s jakýmkoliv nastavením, ale na atlas vůbec a gmail je hned hází do spamu, což je velice nežádoucí.
$headers = 'MIME-Version: 1.0' . "\r\n"; $headers .= 'X-Mailer: PHP/' . phpversion(). "\r\n"; $headers .= 'Content-type: text/plain; charset=utf-8' . "\r\n"; $headers .= "Reply-To: soc.rajchert.cz <roman@rajchert.cz>\r\n"; $headers .= "Return-Path: soc.rajchert.cz <roman@rajchert.cz>\r\n"; $headers .= "From: soc.rajchert.cz <w18034@wedos.net>" . "\r\n"; if(mail($email, popis("tema","hesla.php"), $obsah, $headers)){ |
||
Alphard Profil |
Na gmail je to dost magie, vzlášť html maily podle mých zkušeností. Záleží na detailech kódu, počtu odkazů a nevím co ještě. Vy jste na sdíleném serveru wedosu předpokládám, jestli se dostal kvůli někomu jinému na černou listinu, asi s tím nic neuděláte.
Možná zkusit odeslat mail přes PHPMailer nebo Nette\Mail, udělají to trochu jinak, s jinými hlavičkami, uvidíte. |
||
preston Profil |
Zdravím Vás .... Mám podobný problém, pri odoslaní mailu pomocou mail formuláru Mail vôbec nepríde.
Mail formulár má 4 polia: Meno, Email, Telefon a Text správy. - zistil som že maily neprechádzajú vtedy ak sa vyplní mail adresa, kde problém robí samotný znak "@" Pokiaľ sa nezadá zavináč tak mail prejde, v gmailu síce do spamu. Akonáhle sa zavináč do pola Email zadá, mail neprejde! Vie mi niekto poradiť v čom môže byť problém, nakoľko mailový kontakt je pri komunikácii potrebný a nechcem toto pole vynechať. html: <form id="form" action="send.php" method="post" enctype="multipart/form-data"> <fieldset> <label><input name="p1" type="text" value="Meno" onBlur="if(this.value=='') this.value='Meno'" onFocus="if(this.value =='Meno' ) this.value=''"></label> <label><input name="p2" type="text" value="E-mail" onBlur="if(this.value=='') this.value='E-mail'" onFocus="if(this.value =='E-mail' ) this.value=''"></label> <label><input name="p3" type="text" value="Telefón" onBlur="if(this.value=='') this.value='Telefón'" onFocus="if(this.value =='Telefón' ) this.value=''"></label> <label><textarea name="text" onBlur="if(this.value==''){this.value='Vaša správa'}" onFocus="if(this.value=='Vaša správa'){this.value=''}">Vaša správa</textarea></label> send.php: <?php //Some variables $mymail = "xxx@xxx.sk"; $ename = $_POST['p1']; $eemail = $_POST['p2']; $etelefon = $_POST['p3']; $emessage = $_POST['text']; $headers .= 'Content-type: text/plain; charset=utf-8' . "\r\n"; $headers .= "From: $eemail" . "\r\n"; $body = "$emessage\n\nMeno: $ename\nE-mail: $eemail\nTelefon: $etelefon\nTáto správa bola odoslaná zo stránky www.xxxxx.sk"; mail($mymail,"Vaša správa",$body, $headers); header('Location:http:/kontakt.html'); ini_set("SMTP",$server); ?> Vďaka za rady :) |
||
IdemeNaHavaj Profil |
#4 · Zasláno: 31. 3. 2013, 18:09:00
|
||
Enko Profil * |
#5 · Zasláno: 31. 3. 2013, 19:49:09
To co píše IdemeNaHavaj je i z mé zkušenosti nejlepší řešení. Hlavička FROM musí být stejná se skutečným jménem mailserveru, jinak to vyhodnocují spamfiltry na jednotlivých službách (zcela oprávněně) jako podvodnou nedůvěryhodnou zprávu.
|
||
Daidalos Profil |
#6 · Zasláno: 1. 4. 2013, 10:33:35
Díky všem, ona to je opravdu dost magie zprovoznit mail() aby se dal používat, asi je lepší používat nějakej framework na maily, ale wedos má zas zakázaný spojení s externím smtp. Tyhle návody jako dával IdemeNahavaj jsem si četl, ale nikdy se mi nepodařilo hlavičky správně nastavit, ještě si s tím pohraju, ale všem díky.
|
||
Davex Profil |
Daidalos:
1) Hlavičku Return-Path je zbytečné nastavovat, protože jí mailserver přepíše.
2) Místo znaků "\r\n" pro konec řádku v hlavičce je spolehlivější používat konstantu PHP_EOL .
3) Často stačí jen správně nastavit skutečného odesílatele v pátém parametru funkce mail() .
$from_name = "soc.rajchert.cz"; $from_email = "roman@rajchert.cz"; $headers = 'MIME-Version: 1.0' . PHP_EOL; $headers .= 'X-Mailer: PHP/' . phpversion() . PHP_EOL; $headers .= 'Content-Type: text/plain; charset=utf-8' . PHP_EOL; $headers .= "Reply-To: $from_name <$from_email>" . PHP_EOL; $headers .= "From: $from_name <$from_email>" . PHP_EOL; if (mail($email, popis("tema","hesla.php"), $obsah, $headers, "-f $from_email")){ |
||
Časová prodleva: 11 let
|
0