Autor | Zpráva | ||
---|---|---|---|
Vendelína Profil * |
#1 · Zasláno: 16. 10. 2012, 10:36:51 · Upravil/a: Vendelína
Potřebovala bych poradit. Mám script na odesílání emailu i včetně headers a bohužel mě to píše chybu :( Email se sice odešle, ale s tou chybou si nevím rady. Pomůžete?
Chyba: ALERT - mail() - double newline in headers, possible injection, mail dropped (attacker '81.22.63.190', file '/home/html/example.com/public_html/odeslat_email.php', line 79) PHP: $body = ' <html><body> Ahoj kamaráde,<br>posílam ti zkušební email. </body></html>'; $muj_email = "demo@example.com"; $to = "kamarad@example2.com"; $headers = 'From: example.com <'.$muj_email.">\n"; $headers .= 'To: '.$to."\n"; $headers .= 'MIME-Version: 1.0'."\n"; $headers .= 'Content-Type: text/HTML; charset=UTF-8'."\n"; $headers .= 'Content-Transfer-Encoding: 8bit'."\n"; $headers .= $body . "\n"; mail("", $subject,"", $headers); Na internetu jsem se nyní dočetla, že by mohlo stačit dát před mail() funkci rtrim, tj. $headers = rtrim($headers); . Někdo zase radí nedávat všude \n \n, ale používat \n a \r ... jenže já to mám v HTML a používám <br>.
Nevím, jsem z toho nějaká zmatená :( |
||
nethor Profil |
#2 · Zasláno: 16. 10. 2012, 14:04:53
$body nepatří do hlavičky, ale jako 3. parametr fce mail().
Popisovaná chyba vzniká asi tady: $body = ' // tohle zůsobí dvojitý nový řádek <html><body> ... // správně: $body = '<html><body> ... Pro odesílání mailů používám třídu PHPMailer (class.phpmailer.php) (zagoogli) , je to pohodlnější. |
||
Tori Profil |
Vendelína:
Zpráva by imho neměla být mezi hlavičkami, ale jako 3.parametr fce mail, a adresát má být první parametr. Koukněte i do Nejčastější potíže s PHP (FAQ) » Kódování e-mailu, aneb abychom neposílali otazníky. |
||
Časová prodleva: 13 let
|
0