3v4l.org

run code in 200+ php & hhvm versions
Bugs & Features
<?php define("EMAIL_ADDRESS_WEBMASTER", "bestellung@reinarts.info"); define("EMAIL_ADDRESS_PRODUCER", "bestellung@reinarts.info"); define("EMAIL_SUBJECT_CUSTOMER_CONFIRMATION", "Muesli-Bestellung"); define("EMAIL_SUBJECT_PRODUCER_INFO", "Neue Bestellung"); /** * Verschickt Emails an den Kunden und den Hersteller. */ class Mailer { /** * Erzeugt und sendet die Bestaetigungsmail an den Kunden. */ function sendToCustomer($name, $email, $strasse, $plz, $stadt, $menge250g, $menge500g, $preis) { // Header erzeugen $header = Mailer::createHeader(EMAIL_ADDRESS_PRODUCER); // Maintext erzeugen $mailtext = Mailer::createMailTextForCustomer($name, $email, $strasse, $plz, $stadt, $menge250g, $menge500g, $preis); // Subject $subject = EMAIL_SUBJECT_CUSTOMER_CONFIRMATION; // Email verschicken mail($email, $subject, wordwrap($mailtext), $header); } /** * Erzeugt den Inhalt der Bestaetigungsmail an den Kunden. */ function createMailTextForCustomer($name, $email, $strasse, $plz, $stadt, $menge250g, $menge500g, $preis){ $timestamp = time(); $datum = date("d.m.Y-H:i", $timestamp); $mailtext = "<html>"; $mailtext .= "<head><title>Reinarts M&uuml;sli Bestellung</title></head>"; $mailtext .= "<meta http-equiv='Content-Type' content='text/html; charset=UTF-8' />"; $mailtext .= "<body>"; $mailtext = "<h1>Granola M&uuml;sli made by Reinart's</h1>"; $mailtext .= "<img src='http://reinarts.info/images/muesli_mailheader.png' alt='header'/>"; $mailtext .= "<p>Vielen Dank f&uuml;r Ihre Bestellung vom " . $datum . "!</p>"; $mailtext .= "<table border='0'>"; $mailtext .= "<tr>"; $mailtext .= "<td>"; $mailtext .= Mailer::createInfoTable($name, $email, $strasse, $plz, $stadt, $menge250g, $menge500g, $preis); $mailtext .= "</td>"; $mailtext .= "<td><img src='http://reinarts.info/images/muesli_mailpicture.png' alt='picture'/></td>"; $mailtext .= "</tr>"; $mailtext .= "</table>"; $mailtext .= "<p>Bitte best&auml;tigen Sie Ihre Bestellung und damit unsere <a href='http://reinarts.info/agb.html'>AGBs</a> durch klicken dieses Links.</p>"; $mailtext .= Mailer::createConfirmationLink($name, $email, $strasse, $plz, $stadt, $menge250g, $menge500g, $preis, $datum); $mailtext .= "</body>"; $mailtext .= "</html>"; return $mailtext; } /** * Erzeugt und sendet die Email vom Kunden an den Hersteller. */ function sendToProducer($name, $email, $strasse, $plz, $stadt, $menge250g, $menge500g, $preis, $datum) { // Header erzeugen $header = Mailer::createHeader($email); // Maintext erzeugen $mailtext = Mailer::createMailTextForProducer($name, $email, $strasse, $plz, $stadt, $menge250g, $menge500g, $preis, $datum); // Subject $subject = EMAIL_SUBJECT_PRODUCER_INFO; // Email verschicken mail(EMAIL_ADDRESS_PRODUCER, $subject, $mailtext, $header); } /** * Erzeugt den Inhalt der Email vom Kunden an den Hersteller. */ function createMailTextForProducer($name, $email, $strasse, $plz, $stadt, $menge250g, $menge500g, $preis, $datum){ $mailtext = "<html>"; $mailtext .= "<head><title>Reinart's M¸sli Bestellung</title></head>"; $mailtext .= "<body>"; $mailtext .= "<h1>Eingangsbest&auml;tigung (Bestellung vom " . $datum . ")</h1>"; $mailtext .= Mailer::createInfoTable($name, $email, $strasse, $plz, $stadt, $menge250g, $menge500g, $preis); $mailtext .= "</body>"; $mailtext .= "</html>"; return $mailtext; } /** * Erzeugt den MailHeader UTF-8\r\n */ function createHeader($sender){ $header = 'MIME-Version: 1.0' . "\r\n"; $header .= 'Content-type: text/html; charset=UTF-8' . "\r\n"; $header .= 'From: ' . $sender . "\r\n"; $header .= 'Reply-To: ' . $sender . "\r\n"; $header .= 'X-Mailer: PHP ' . phpversion(); return $header; } /** * Erzeugt die Info-Tabelle fuer beide Emails. */ function createInfoTable($name, $email, $strasse, $plz, $stadt, $menge250g, $menge500g, $preis){ $infoTable = "<table height='149' border='1'>"; $infoTable .= Mailer::createInfoRow("Name", $name); $infoTable .= Mailer::createInfoRow("Email", $email); $infoTable .= Mailer::createInfoRow("Strasse", $strasse); $infoTable .= Mailer::createInfoRow("Postleitzahl", $plz); $infoTable .= Mailer::createInfoRow("Stadt", $stadt); $infoTable .= Mailer::createInfoRow("Menge 250g", $menge250g); $infoTable .= Mailer::createInfoRow("Menge 500g", $menge500g); $infoTable .= Mailer::createInfoRow("Gesamtpreis", $preis); $infoTable .= "</table>"; return $infoTable; } /** * Erzeugt eine Zeile der Info-Tabelle. */ function createInfoRow($key, $value){ return "<tr><td>" . $key . ":</td><td>" . $value . "</td></tr>"; } /** * Erzeugt den a-Tag fuer die Bestaetigungsmail. */ function createConfirmationLink($name, $email, $strasse, $plz, $stadt, $menge250g, $menge500g, $preis, $datum){ $parameters = Mailer::createConfirmationLinkParam("name", $name); $parameters .= Mailer::createConfirmationLinkParam("email", $email); $parameters .= Mailer::createConfirmationLinkParam("strasse", $strasse); $parameters .= Mailer::createConfirmationLinkParam("plz", $plz); $parameters .= Mailer::createConfirmationLinkParam("stadt", $stadt); $parameters .= Mailer::createConfirmationLinkParam("menge250g", $menge250g); $parameters .= Mailer::createConfirmationLinkParam("menge500g", $menge500g); $parameters .= Mailer::createConfirmationLinkParam("preis", $preis); $parameters .= substr(Mailer::createConfirmationLinkParam("datum", $datum), 0, -1); return "<a href='http://reinarts.info/order/confirm.php?" . $parameters . "'>Bestellung best&auml;tigen</a>"; } /** * Erzeugt ein Key-Value-Paar fuer den a-Tag fuer die Bestaetigungsmail. */ function createConfirmationLinkParam($key, $value){ return $key . "=" . urlencode($value) . "&"; } } ?>
based on 6LFsg
Output for 5.4.0 - 7.2.0