Ich habe ein PHP-Skript, das zwei E-Mails mit dem Befehl mail sendet.
Eine E-Mail geht immer an den Besucher der Website - sie kommt immer korrekt an.
Eine zweite E-Mail geht an den Betreiber der Website. Die Post kommt immer an, ist aber in etwa 10% der Fälle leer.
Es ist also nur der Text darin, aber die Variablen wie $ _SESSION ['Name'], die eingefügt werden sollen, werden dann nicht übernommen.
Diese sind alle leer. Dies geschieht immer nur mit der E-Mail an den Site-Betreiber, aber nie mit der ersten E-Mail an den Kunden (Website-Besucher).
Kann mir da jemand helfen, wo da das Problem liegen könnte, warum die Variablen der Mail spiradisch leer übermittelt werden?
Alternativ, wie könnte man durch eine Abfrage verhindern, dass bei leeren Variablen eine Mail versendet wird?
Die Funktion "mail_cart"
Der eigentliche Mailaufruf lautet:
Für die Mail die generiert wird gibt es ein Template als Vorlage.
Dort steht folgendes:
Eine E-Mail geht immer an den Besucher der Website - sie kommt immer korrekt an.
Eine zweite E-Mail geht an den Betreiber der Website. Die Post kommt immer an, ist aber in etwa 10% der Fälle leer.
Es ist also nur der Text darin, aber die Variablen wie $ _SESSION ['Name'], die eingefügt werden sollen, werden dann nicht übernommen.
Diese sind alle leer. Dies geschieht immer nur mit der E-Mail an den Site-Betreiber, aber nie mit der ersten E-Mail an den Kunden (Website-Besucher).
Kann mir da jemand helfen, wo da das Problem liegen könnte, warum die Variablen der Mail spiradisch leer übermittelt werden?
Alternativ, wie könnte man durch eine Abfrage verhindern, dass bei leeren Variablen eine Mail versendet wird?
Die Funktion "mail_cart"
Code:
function mailCart() { //Versandkosten berechnen if($_POST['Versandart']==1) { $V_Preis="3.00"; } else { $V_Preis="0.00"; } global $db; $cart = $_SESSION['cart']; if ($cart!="") { $items = explode(',',$cart); $contents = array(); foreach ($items as $item) { $contents[$item] = (isset($contents[$item])) ? $contents[$item] + 1 : 1; } $output[] = '<table border="1" width="460">'; $output[] = '<tr><td class="tdtitle" width="260">Veranstaltung</td><td class="tdtitle_right" width="60">E-Preis</td><td class="tdtitle" width="40">Anzahl</td><td class="tdtitle_right" width="100">Gesamtpreis</td></tr>'; foreach ($contents as $id=>$qty) { //Kat aufdröseln list($id, $kat) = explode(":", $id); $sql = 'SELECT * FROM artikel WHERE id = '.$id; $result = $db->query($sql); $row = $result->fetch(); extract($row); $output[] = '<tr>'; $output[] = '<td>'.$Titel.' am '.datesplit_Datum($Datum).'</td>'; $output[] = '<td align="right">'.sprintf("%01.2f", $Preise).' €</td>'; $output[] = '<td align="center">'.$qty.'</td>'; $output[] = '<td align="right">'.sprintf("%01.2f", $Preise * $qty).' €</td>'; $total += $Preise * $qty; $total_versand = $total+$V_Preis; $total_netto = ($total-$total/1.07)+($V_Preis-$V_Preis/1.07); } $output[] = '</tr>'; $output[] = '<tr><td colspan="3">Versandkosten:</td>'; $output[] = '<td align="right">'. sprintf("%01.2f", $V_Preis) .' €</td></tr>'; $output[] = '<tr><td colspan="3">inkl. MwSt. 7%:</td>'; $output[] = '<td align="right">'. sprintf("%01.2f", $total_netto) .' €</td></tr>'; $output[] = '<tr><td colspan="3"><b>Summe:</b></td>'; $output[] = '<td align="right"><b>'. sprintf("%01.2f", $total_versand) .' €</b></td></tr>'; $output[] = '<tr><td align="right" colspan="5">'; $output[] = '</table>'; } //Neu zur Fehlereingrenzung else {$output[] = '<p>Fehler bei der Übermittlung der Ticketdaten aus dem Warenkorb</p>';} return join('',$output); }
Der eigentliche Mailaufruf lautet:
Code:
ob_start(); include('templates/mail/order_mail.htm'); $MessAnbieter = ob_get_contents(); ob_end_clean(); mail($_SESSION['eMail'], "Ihre Ticketbestellung", "$MessAnbieter", "From: tickets@domain.de\nReply-To: tickets@domain.de\nContent-Type: text/html; Charset=utf-8\nX-Mailer: PHP/" . phpversion()); mail("tickets@domain.de", "Web-Ticket-Bestellung!", "$MessAnbieter", "From: tickets@domain.de\nReply-To: tickets@domain.de\nContent-Type: text/html; Charset=utf-8\nX-Mailer: PHP/" . phpversion());
Für die Mail die generiert wird gibt es ein Template als Vorlage.
Dort steht folgendes:
Code:
<b>Bestellung von:</b><br> <?php echo "$_SESSION[Anrede]"; ?> <?php echo "$_SESSION[Name1]"; ?> <?php echo "$_SESSION[Name2]"; ?><br> <?php echo "$_SESSION[Adresse]"; ?><br> <?php echo "$_SESSION[PLZ]"; ?> <?php echo "$_SESSION[Ort]"; ?><br> E-Mail: <?php echo "$_SESSION[eMail]"; ?><br> <hr> <b>Ticketdaten:</b><br> <?php echo mailCart(); ?> <br> Versandart: <?php echo "$VersandSet"; ?> <br><hr> <b>Newsletter:</b><br> <?php echo "$NLset"; ?><br> <b>Mitteillung:</b><br> <?php echo "$_SESSION[Info]"; ?><br>