Diskuze: Hlavička mailu v php

PHP PHP Hlavička mailu v php American English version English version

Aktivity (1)
Avatar
_d0p3
Člen
Avatar
_d0p3:20.5.2016 11:17

Mám takový problém s odesíláním e-mailu pomocí php funkce

mail($to, $subject, $message, $headers);

Mám problém s hlavičkou mailu. Když napíšu do hlavičky toto, tak mi nefunguje formátování mailu pomocí html, ale ostatní věci jako kódováni a 'From:' funguje.

$headers = 'From: [email protected]' . "\r\n" .
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";

Ale když napíšu 'Content-type' jako první a 'From:' jako druhé, tak funguje html v mailu, ale From nefunguje a když mi příjde mail tak mi nepříjde od [email protected]', ale od [email protected]'. Vypadá to jako by to bralo pouze ten první parametr hlavičky.

$headers = 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .= 'From: [email protected]' . "\r\n" .

Každé reference to tak mají a funguje jim to. Nevíte čím to je?

 
Odpovědět 20.5.2016 11:17
Avatar
Patrik Neumann:28.5.2016 11:38

Ahoj,
zkus použít tento kód (jestli to pořád nefunguje):

$headers = "From: [email protected]";
$headers .= "\nMIME-Version: 1.0\n";
$headers .= "Content-Type: text/html;charset=\"UTF-8\"\n";
mail($to, $subject, $message, $headers);
Nahoru Odpovědět 28.5.2016 11:38
Nic není nemožné, proto se snažím dál.
Avatar
Eda Stehlík
Člen
Avatar
Eda Stehlík:29.5.2016 9:48

Podle mě je lepší použít:

mb_internal_encoding("UTF-8");

$hlavicka = "From: odesilatel";
$hlavicka .= "\nMIME-Version: 1.0\n";
$hlavicka .= "Content-Type: text/html; charset=\"utf-8\"\n";

a poté to odeslat pomocí:

$odeslat = mb_send_mail($adresa, $predmet, $zprava, $hlavicka);

celé by to pak mohlo vypadat asi takto:

mb_internal_encoding("UTF-8");

$hlavicka = "From: odesilatel";
$hlavicka .= "\nMIME-Version: 1.0\n";
$hlavicka .= "Content-Type: text/html; charset=\"utf-8\"\n";
$adresa = "prijemce e-mailu";
$predmet = "predmet";
$zprava = "zprava";

$odeslat = mb_send_mail($adresa, $predmet, $zprava, $hlavicka);

A takto by to mělo fungovat!

Nejde na localhostu! Musíš to dát na hosting!

 
Nahoru Odpovědět 29.5.2016 9:48
Avatar
Eda Stehlík
Člen
Avatar
Odpovídá na _d0p3
Eda Stehlík:29.5.2016 9:57

Vyřešeno
Namísto:

$hlavicka = "From: odesilatel";
$hlavicka .= "\nMIME-Version: 1.0\n";
$hlavicka .= "Content-Type: text/html; charset=\"utf-8\"\n";

pouzij:

$hlavicka = "From: odesilatel" . "\nMIME-Version: 1.0\n" . "Content-Type: text/html; charset=\"utf-8\"\n";

a vše by mělo fungovat!

 
Nahoru Odpovědět  -3 29.5.2016 9:57
Avatar
Matúš Petrofčík
Šéfredaktor
Avatar
Odpovídá na Eda Stehlík
Matúš Petrofčík:29.5.2016 14:14

:D :D a aký je rozdiel medzi tým prvým spájaním stringov a tým druhým spájaním stringom okrem toho spájania stringov? :D :D

Nahoru Odpovědět  +1 29.5.2016 14:14
obsah kocky = r^2 ... a preto vlak drnká
Avatar
Eda Stehlík
Člen
Avatar
Odpovídá na Matúš Petrofčík
Eda Stehlík:29.5.2016 14:36

U toho prvního mi nefunguje v e-mailu html

 
Nahoru Odpovědět 29.5.2016 14:36
Avatar
Matúš Petrofčík
Šéfredaktor
Avatar
Odpovídá na Eda Stehlík
Matúš Petrofčík:29.5.2016 14:46

To je divné, malo by to fungovať rovnako. V tých stringoch máš rovnaký obsah, len ich spájaš mierne odlišným spôsobom, ale to by nemalo robiť rozdiely.

Ja to mám takto:

$header  = "From: Odosielateľ Pomenovaný <[email protected]>\r\n";
$header .= "MIME-Version: 1.0\r\n";
$header .= "Content-Type: text/html; charset=\"utf-8\"\r\n";

if (!mail($to, $subject, $content, $header)) {
    // spracovanie chyby
}

HTML funguje.

Nahoru Odpovědět 29.5.2016 14:46
obsah kocky = r^2 ... a preto vlak drnká
Avatar
Eda Stehlík
Člen
Avatar
Odpovídá na Matúš Petrofčík
Eda Stehlík:29.5.2016 14:54

Mě to totiž ignorovalo ty dva řádky s $header .= (Nevím z jakého důvodu)Když jsem to pak dal na jednu lajnu už to fungovalo!

Editováno 29.5.2016 14:55
 
Nahoru Odpovědět 29.5.2016 14:54
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 8 zpráv z 8.