NOVINKA - Online rekvalifikační kurz Java programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!

Diskuze: Hlavička mailu v php

V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.

Aktivity
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 'info@avmvisi­on.eu', ale od 'zakaznik@endo­ra.stable.cz'. 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
29.5.2016 9:57
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
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
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.