<?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üsli Bestellung</title></head>";
$mailtext .= "<meta http-equiv='Content-Type' content='text/html; charset=UTF-8' />";
$mailtext .= "<body>";
$mailtext = "<h1>Granola Müsli made by Reinart's</h1>";
$mailtext .= "<img src='http://reinarts.info/images/muesli_mailheader.png' alt='header'/>";
$mailtext .= "<p>Vielen Dank fü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ä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ä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ätigen</a>";
}
/**
* Erzeugt ein Key-Value-Paar fuer den a-Tag fuer die Bestaetigungsmail.
*/
function createConfirmationLinkParam($key, $value){
return $key . "=" . urlencode($value) . "&";
}
}
?>
preferences:
33.29 ms | 402 KiB | 5 Q