Autor | Zpráva | ||
---|---|---|---|
quatzael Profil |
Potřeboval bych vytvořit email, ve kterým by normálně fungovalo zobrazení HTML. Pokud možno i s CSS.
Našel jsem vlákno: ako pouzit v mail-i HTML znaky?, ale nic z toho mi nefunguje (script se zastaví). |
||
Tori Profil |
#2 · Zasláno: 7. 5. 2013, 09:54:56
quatzael:
„nic z toho mi nefunguje (script se zastaví).“ Syntaktická chyba? Nezachycená výjimka? Asi to je rozbité. |
||
quatzael Profil |
#3 · Zasláno: 7. 5. 2013, 10:06:37 · Upravil/a: quatzael
Tori:
Nějak jsem rozchodil to první: $headers = "From:" . $from; $headers .= "Content-type: text/html"; Ale HTML funguje to jen když tam nemám ten řádek s From:, který tam samozřejmě chci mít.. zkusil jsem mezi to dát čárku, script se nezastaví From: funguje, ale zas nefunguje to HTML.. Ve $from mám normálně adresu a před ní slovy název domény.
|
||
jenikkozak Profil |
#4 · Zasláno: 7. 5. 2013, 10:09:58
Jednotlivé hlavičky se oddělují zalomením řádku. Na to můžeš použít předdefinovanou konstantu
PHP_EOL .
|
||
Tori Profil |
quatzael:
Špatně oddělujete jednotlivé hlavičky, koukněte do FAQ: Nejčastější potíže s PHP (FAQ) » Kódování e-mailu, aneb abychom neposílali otazníky., i kvůli tomu enkódování některých hlaviček. |
||
quatzael Profil |
#6 · Zasláno: 7. 5. 2013, 10:19:00
jenikkozak, Tori:
Supr, díky! Použil jsem to .PHP_EOL a funguje to! Ještě mám dotaz: jaký je rozdíl mezi \n a \r? mě to připadá totožný.. |
||
Kubo2 Profil |
#7 · Zasláno: 7. 5. 2013, 10:39:25
quatzael:
To su vsetko znaky noveho riadku, akurat na rozlicnych platformach. \n alebo LF je na UNIXE, \r alebo CR je na Macu a \r\n je CRLF a to je windows. a pripadne ma prosim opravte ak táram. |
||
Tori Profil |
quatzael:
„jaký je rozdíl mezi \n a \r“ Původně se lišily: LF = posun na další řádek ve stejném sloupci, CR = posun na první sloupec v aktuálním řádku. Na různých platformách se ale význam liší, viz wiki edit: Ještě v souvislosti s hlavičkami e-mailů odkážu na příspěvek: Návrhy a připomínky k PHP FAQ #29 |
||
Joker Profil |
#9 · Zasláno: 7. 5. 2013, 11:27:47
quatzael:
„jaký je rozdíl mezi \n a \r? mě to připadá totožný..“ No, jsou to různé znaky. \n je znak „line feed“ (přechod nový řádek) a \r je znak „carriage return“ (návrat vozíku - převzato od psacích strojů). V různých operačních systémech se odřádkování dělá různým způsobem, viz Kubo2 [#7], lze dát dohromady logicky znějící argumentaci na podporu každého z těch způsobů :) Konstanta PHP_EOL vloží odřádkování odpovídající systému, ve kterém PHP aktuálně pracuje. Nejsem si ale jistý, jestli v tomto případě je použití PHP_EOL správně. V e-mailech se nemá používat odřádkování podle operačního systému, ale odřádkování podle standardu definujícího formát e-mailu (RFC 2821), což je CRLF. Což by znamenalo, že v případě e-mailu se nemá použít PHP_EOL, ale "\r\n". Zároveň jsem ale četl, že některé e-mailové servery na UNIX-like systémech samy nahrazují LF na CRLF, což by zas byl argument pro PHP_EOL. Nejsem si jistý, jak to vlastně je správně. |
||
Davex Profil |
#10 · Zasláno: 7. 5. 2013, 18:09:53
Joker:
„Což by znamenalo, že v případě e-mailu se nemá použít PHP_EOL, ale "\r\n".“ Ano, ale záleží na tom, jaké konce řádku očekává na použitém systému odesílací program - viz Špatná příloha - Seznam. (Konstanta PHP_EOL k tomu není původně určena a jen se využívá její vlastnosti, že má čirou náhodou potřebnou hodnotu :-)
|
||
Časová prodleva: 11 let
|
0