Diskuze: mb_send_mail - složené tělo emailu
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.


Zobrazeno 6 zpráv z 6.
K personalizaci obsahu a reklam, poskytování funkcí sociálních médií a analýze naší návštěvnosti využíváme soubory cookie. Informace o tom, jak náš web používáte, sdílíme se svými partnery pro sociální média, inzerci a analýzy. Partneři tyto údaje mohou zkombinovat s dalšími informacemi, které jste jim poskytli nebo které získali v důsledku toho, že používáte jejich služby.
Používáme nezbytné cookies pro fungování webu a s tvým souhlasem také analytické a marketingové cookies.
Zajišťují základní funkce, bezpečnost a služby, které sis vyžádal. Nelze je vypnout.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| ITnetwork | ITnetwork | Provoz webu, relace, přihlášení a uložení nastavení cookies. | PHPSESSID, auth_token, sid, itn_consent_impression, __Host-itn_consent | Relace až 1 rok |
| Google Tag Manager | Správa značek a načítání měřicích nástrojů webu. | Žádné | Neukládá se | |
| Google Fonts | Načítání typografie webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google Hosted Libraries | Načítání potřebných knihoven a stylů webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google reCAPTCHA | Ochrana formulářů a webu před zneužitím. | _GRECAPTCHA, rc::a, rc::b, rc::c, rc::f | Relace až 180 dní | |
| YouTube | Přehrávání vloženého video obsahu. | localStorage, IndexedDB; cookies after playback interaction | Relace až trvalé úložiště | |
| Vimeo | Vimeo | Přehrávání vloženého video obsahu. | __cf_bm, _cfuvid, vuid, localStorage, IndexedDB | Relace až 2 roky |
| Facebook Login | Meta | Přihlášení pomocí účtu třetí strany. | Úložiště řízené poskytovatelem | Relace až 1 rok |
| GoPay | GoPay | Zpracování uživatelem vyžádané platby. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
Pomáhají nám porozumět používání webu a zlepšovat ho.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Analytics 4 | Měření návštěvnosti a používání webu. | _ga, _ga_* | Až 2 roky | |
| Microsoft Clarity | Microsoft | Měření návštěvnosti a používání webu. | _clck, _clsk, _cltk | Relace až 1 rok |
Slouží k měření kampaní, personalizaci reklamy a marketingové komunikaci.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Ads | Měření kampaní, reklama a remarketing. | _gcl_au, _gcl_ls | Relace až 90 dní | |
| Meta Pixel | Meta | Měření kampaní, reklama a remarketing. | _fbp, _fbc, localStorage | Až 90 dní |
| Sklik | Seznam.cz | Měření kampaní, reklama a remarketing. | retargeting, sid, szn:* | Relace až trvalé úložiště |
| LinkedIn Insight | Měření kampaní, reklama a remarketing. | bcookie, li_gc, lidc, __cf_bm | Relace až 1 rok | |
| Ecomail | Ecomail.cz | Měření kampaní, reklama a remarketing. | ecmid, Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
| Atribuce kampaní ITnetwork | ITnetwork | Přiřazení návštěvy a objednávky ke kampani. | campaign_clid[*], user_session_context | Až 1 rok |
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.


$jmeno==""\nma byt PHP_EOLHm, koukam, ze priklady k mb-send-mail stoji za prd 
Ok, tak podstatne je, ze treti parametr je $message
mb_send_mail(
string $to,
string $subject,
string $message,
array|string $additional_headers = [],
?string $additional_params = null
): bool
Zkus tedy mail. A, opet, kde tam maji \r\n a pod, ma byt
PHP_EOL
https://www.php.net/…ion.mail.php
<?php
$to = '[email protected]';
$subject = 'the subject';
$message = 'hello';
$headers = 'From: [email protected]' . "\r\n" .
'Reply-To: [email protected]' . "\r\n" .
'X-Mailer: PHP/' . phpversion();
mail($to, $subject, $message, $headers);
?>
Example #5 Sending HTML email
It is also possible to send HTML email with mail().
<?php
// Multiple recipients
$to = '[email protected], [email protected]'; // note the comma
// Subject
$subject = 'Birthday Reminders for August';
// Message
$message = '
<html>
<head>
<title>Birthday Reminders for August</title>
</head>
<body>
<p>Here are the birthdays upcoming in August!</p>
<table>
<tr>
<th>Person</th><th>Day</th><th>Month</th><th>Year</th>
</tr>
<tr>
<td>Johny</td><td>10th</td><td>August</td><td>1970</td>
</tr>
<tr>
<td>Sally</td><td>17th</td><td>August</td><td>1973</td>
</tr>
</table>
</body>
</html>
';
// To send HTML mail, the Content-type header must be set
$headers[] = 'MIME-Version: 1.0';
$headers[] = 'Content-type: text/html; charset=iso-8859-1';
// Additional headers
$headers[] = 'To: Mary <[email protected]>, Kelly <[email protected]>';
$headers[] = 'From: Birthday Reminder <[email protected]>';
$headers[] = 'Cc: [email protected]';
$headers[] = 'Bcc: [email protected]';
// Mail it
mail($to, $subject, $message, implode("\r\n", $headers)); // lepe implode(PHP_EOL, $headers)
?>
Info k PHP_EOL se trosku hur hleda, lepsi pouzit google.
https://www.php.net/…onstants.php#…
Jde o to, ze ruzne verze php a systemy pouzivaji pro odradkovani ruzne zapisy. A
to prave resi pouziti je konstanty PHP_EOL Mohlo by se ti stat, ze ti mail
nepujde odeslat, protoze mas v hlavicce spatnou konstantu, \n
nemusi stacit.
Samozrejme si ty priklady uprav podle tveho kodu. Kodovani a jine.
Díky moc za odpověď a nápovědu. Ještě jsem si musel hodně nastudovat,
ale dobrá věc se podařila 
Nakonec jsem to vyřešil pomocí pole, kde mám všechny hodnoty poskládané a
vkládám je do mail funkcí implode
Pro názornost a třeba někoho dalšího, kdo by to potřeboval:
$hlavicka[] = 'From:' . $_POST['email'];
$hlavicka[] = 'Cc:' . $_POST['email'];
$hlavicka[] = '\nMIME-Version: 1.0\n';
$hlavicka[] = 'Content-type: text/html; charset=\"utf-8\"\n';
$adresat = '[email protected]';
$predmet = 'Poptávka - penzion Vanda';
$array = array
(PHP_EOL,
'Jméno: ' . $_POST['jmeno'],
'Email: ' . $_POST['email'],
'Telefon: ' . $_POST['cislo'],
'Počet osob: ' . $_POST['osob'],
'Termín od: ' . $_POST['termin_od'],
'Termín do: ' . $_POST['termin_do'],
'Zpráva: ' . $_POST['zprava']);
$uspech = mail($adresat, $predmet, "<pre>".implode(PHP_EOL, $array)."</pre>", implode(PHP_EOL, $hlavicka));
if ($uspech) {
$hlaska = 'Poptávka byla úspěšně odeslána, budeme Vás kontaktovat.';
Jo, no, ale misto mail jsi mel pouzit ten mb_mail
U mail to odesila tak, jak to tam
das. A nektere maily neumi spravne dekodovat utf-8 nebo jine kodovani. Tomu by
mel predejit mb_mail. Ale nemam s tim zkusenost.
Hlavicka se treba koduje jeste do base64, prave kvuli problemum s utf.
Ale, pokud ti to odesila spravne, a mail uzivatele zobrazuje ok, tak ok. Zatim bych to neresil.
Tady: "":https://www.dasm.cz/…-maily-z-php jsem načetl, že v
případě toho skládaného těla mailu a myslím i složených hlaviček je
potřeba použít prostou fci mail, tak jsem to tak udělal. Odesílá to s
diakritikou, odřádkované, takže v pohodě 
Zkoušel jsem to i s mb_mail, a funguje to také, takže obě možnosti jsou v
tomhle případě nejspíš správné 
mail je stara funkce, bez kodovani (resp, musis to vnutit rucne), mb_mail by to mel kodovat sam na na utf8. ale nevim, co to prave provede s hlavickou, ja pouzivam vlastni modifikaci primo v class a uz to zpetne ted nestuduji
Zobrazeno 6 zpráv z 6.