| 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: 14 let
|
|||
0