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.

Člen

Zobrazeno 6 zpráv z 6.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
$jmeno==""
\n
ma 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.