<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki.stephanschlegel.de/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=85.216.68.159</id>
	<title>Wikizone - Benutzerbeiträge [de]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.stephanschlegel.de/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=85.216.68.159"/>
	<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=Spezial:Beitr%C3%A4ge/85.216.68.159"/>
	<updated>2026-05-06T19:48:33Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.35.14</generator>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=PHP_-_E-Mail_versenden&amp;diff=21365</id>
		<title>PHP - E-Mail versenden</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=PHP_-_E-Mail_versenden&amp;diff=21365"/>
		<updated>2016-01-29T12:29:58Z</updated>

		<summary type="html">&lt;p&gt;85.216.68.159: /* Funktionierendes Beispiel */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
 http://www.a2hosting.com/kb/developer-corner/php/using-php-to-send-e-mail-messages#Method-1.3A-Using-the-mail-function&lt;br /&gt;
 http://www.phpbuddy.eu/emails-mit-php-versenden.html?start=4&lt;br /&gt;
 http://de.wikipedia.org/wiki/Header_(E-Mail)#Beispielmail&lt;br /&gt;
 http://www.schlayer.org/Spamassasin-Hits-deutsche-Uebersetzung.html&lt;br /&gt;
 &lt;br /&gt;
=== Probleme mit Spamfiltern und neueren PHP Versionen vermeiden ===&lt;br /&gt;
==== Spamfilter mit -f Parameter überzeugen ====&lt;br /&gt;
Oft ist es notwendig den -f Parameter zu verwenden um Spamfiltern zu vermitteln, daß es sich nicht um einen Spamversand handelt.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$addParams = &amp;#039;-fnoreply@&amp;#039;.$_SERVER[&amp;#039;SERVER_NAME&amp;#039;];&lt;br /&gt;
$success = mail($to, $subject, $body, $headers,$addParams);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Richtige Header ====&lt;br /&gt;
Bei Problemen mit der Spamerkennung. Hinweise bieten die Codes von Spamassasin&lt;br /&gt;
&lt;br /&gt;
 Link: http://www.schlayer.org/Spamassasin-Hits-deutsche-Uebersetzung.html&lt;br /&gt;
&lt;br /&gt;
 MESSAGE              BEDEUTUNG&lt;br /&gt;
 FH_FROMEML_NOTLD     From Adresse hat keine gültige Top Level Domain (oder fehlt)&lt;br /&gt;
 INVALID_MSGID        Aufbau: &amp;lt;random characters@fqdn-of-sending-host&amp;gt; z.B. &lt;br /&gt;
 RP_MATCHES_RCVD&lt;br /&gt;
 URI_HEX&lt;br /&gt;
&lt;br /&gt;
==== Funktionierendes Beispiel====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$fqdn_hostname = $_SERVER[&amp;#039;SERVER_NAME&amp;#039;];&lt;br /&gt;
$mid = &amp;quot;&amp;lt;&amp;quot; . sha1(microtime()) . &amp;quot;@&amp;quot; . $fqdn_hostname . &amp;quot;&amp;gt;&amp;quot;;&lt;br /&gt;
$from = &amp;#039;&amp;quot;Narda Safety Test Solutions&amp;quot; &amp;lt;noreply@&amp;#039;.$_SERVER[&amp;#039;SERVER_NAME&amp;#039;].&amp;#039;&amp;gt;&amp;#039;;&lt;br /&gt;
$admin_mail = &amp;#039;&amp;lt;schlegel@geo-bit.de&amp;gt;&amp;#039;;&lt;br /&gt;
$replyto_mail = &amp;#039;service.narda-de@l-3com.com&amp;#039;;&lt;br /&gt;
$to = $_POST[e_brief];&lt;br /&gt;
$subject=&amp;quot;NARDA-STS / Request for RMA-Number&amp;quot;;&lt;br /&gt;
$headers .= &amp;#039;Reply-To: &amp;#039;.$replyto_mail.&amp;quot;\r\n&amp;quot;;&lt;br /&gt;
//$headers .= &amp;quot;Return-Path: noreply@&amp;quot; .$_SERVER[&amp;#039;SERVER_NAME&amp;#039;]. &amp;quot;\r\n&amp;quot;;&lt;br /&gt;
//$headers .= &amp;quot;Return-Path: &amp;quot; .$replyto_mail. &amp;quot;\r\n&amp;quot;;&lt;br /&gt;
$headers .= &amp;#039;X-Mailer: PHP/&amp;#039;.phpversion().&amp;quot;\r\n&amp;quot;;&lt;br /&gt;
$headers .= &amp;#039;From: &amp;#039;.$from.&amp;#039;\r\n&amp;#039;;&lt;br /&gt;
//$headers .= &amp;#039;Cc:&amp;#039;.$narda_mail.&amp;quot;\n&amp;quot;;&lt;br /&gt;
$headers .= &amp;#039;Bcc:&amp;#039;.$admin_mail.&amp;quot;\n&amp;quot;;&lt;br /&gt;
$headers .= &amp;quot;MIME-Version: 1.0\r\n&amp;quot;;&lt;br /&gt;
$headers .= &amp;quot;Content-type: text/plain; charset=iso-8859-1\r\n&amp;quot;;&lt;br /&gt;
$headers .= &amp;quot;Content-Transfer-Encoding: 7bit\r\n&amp;quot;;&lt;br /&gt;
$headers .= &amp;quot;Message-ID: &amp;quot; .$mid. &amp;quot;\r\n\r\n&amp;quot;;&lt;br /&gt;
$addParams = &amp;#039;-fnoreply@&amp;#039;.$_SERVER[&amp;#039;SERVER_NAME&amp;#039;];&lt;br /&gt;
$body = &amp;quot;Dear Mrs./Mr. $_POST[first_name] $_POST[last_name],\r\n&amp;quot;;&lt;br /&gt;
$body .= &amp;quot;your email-adress has been successfully confirmed. \r\n&amp;quot;;&lt;br /&gt;
$body .= &amp;quot;You will find the form for filling in the data of your device here:\r\n\r\n&amp;quot;;&lt;br /&gt;
$body .= $secure_root_url.&amp;quot;/$ziel_ordner/RMA/rma_reCall.php?req_num=$req_number&amp;quot;;&lt;br /&gt;
$state=mail($to, $subject, $body, $headers, $addParams);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Body oder Header ====&lt;br /&gt;
Was gehört in der Mailfunktion von php in den Header was in den Body. Es gibt vor allem bei Mails mit Attachments schnell Probleme wegen Zuvielen Zeilenumbrüchen, wenn man etwas falsch macht. Hier ein Ausschnitt der funktioniert:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$to = &amp;#039;Schlegel &amp;lt;schlegel@geo-bit.de&amp;gt;&amp;#039;;&lt;br /&gt;
$mailfrom = $to = &amp;#039;Stephan &amp;lt;stephanschlegel@irgendwo.de&amp;gt;&amp;#039;;&lt;br /&gt;
$replyto = &amp;#039;schlegel@geo-bit.de&amp;#039;;&lt;br /&gt;
$headers = &amp;#039;&amp;#039;;&lt;br /&gt;
$body = &amp;quot;mein E-Mail Text&amp;quot;;&lt;br /&gt;
$subject = &amp;quot;mein Betreff&amp;quot;;&lt;br /&gt;
$headers .= &amp;#039;Reply-To: &amp;#039;.$replyto.&amp;quot;\r\n&amp;quot;;&lt;br /&gt;
//$headers .= &amp;quot;Return-Path: noreply@&amp;quot; .$_SERVER[&amp;#039;SERVER_NAME&amp;#039;]. &amp;quot;\r\n&amp;quot;;&lt;br /&gt;
$headers .= &amp;quot;Return-Path: &amp;quot; .$replyto. &amp;quot;\r\n&amp;quot;;&lt;br /&gt;
$headers .= &amp;#039;X-Mailer: PHP/&amp;#039;.phpversion().&amp;quot;\r\n&amp;quot;;&lt;br /&gt;
$headers .=&amp;#039;From: &amp;#039;.$mailfrom.&amp;quot;\r\n&amp;quot;;&lt;br /&gt;
$headers .= &amp;quot;MIME-Version: 1.0\r\n&amp;quot;;&lt;br /&gt;
if($has_upload){&lt;br /&gt;
	$headers .= &amp;quot;Content-Type: multipart/mixed; boundary=\&amp;quot;&amp;quot;.$mid.&amp;quot;\&amp;quot;\r\n\r\n&amp;quot;;&lt;br /&gt;
	//$message .= &amp;quot;This is a multi-part message in MIME format.\r\n&amp;quot;;&lt;br /&gt;
	$message .= &amp;quot;--&amp;quot;.$mid.&amp;quot;\r\n&amp;quot;;&lt;br /&gt;
	//attachment part&lt;br /&gt;
	$content_type= getMimeType($tmp_path);&lt;br /&gt;
	$message .= &amp;quot;Content-Type: &amp;quot;.$content_type.&amp;quot;; name=\&amp;quot;&amp;quot;.$filename.&amp;quot;\&amp;quot;\r\n&amp;quot;;&lt;br /&gt;
	$message .= &amp;quot;Content-Transfer-Encoding: base64\r\n&amp;quot;;&lt;br /&gt;
	$message .= &amp;quot;Content-Disposition: attachment; filename=\&amp;quot;&amp;quot;.$filename.&amp;quot;\&amp;quot;\r\n\r\n&amp;quot;;&lt;br /&gt;
	$message .= $attachment.&amp;quot;\r\n\r\n&amp;quot;;&lt;br /&gt;
	$message .= &amp;quot;--&amp;quot;.$mid.&amp;quot;\r\n&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
// Text part&lt;br /&gt;
$message .= &amp;quot;Content-Type: text/plain; charset=UTF-8\r\n&amp;quot;;	&lt;br /&gt;
$message .= &amp;quot;Content-Transfer-Encoding: 8bit\r\n\r\n&amp;quot;;	&lt;br /&gt;
$message .= $body.&amp;quot;\r\n\r\n&amp;quot;;&lt;br /&gt;
if($has_upload){&lt;br /&gt;
	$message .= &amp;quot;--&amp;quot;.$mid.&amp;quot;\r\n&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
$addParams = &amp;#039;-fnoreply@&amp;#039;.$_SERVER[&amp;#039;SERVER_NAME&amp;#039;];&lt;br /&gt;
$success = mail($to, $subject,$message, $headers, $addParams);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gmx Header ===&lt;br /&gt;
Bei GMX können Kleinigkeiten dazu führen daß die Mail als Spam eingestuft wird. Wichtig beim Absender z.B. das folgende Format:&lt;br /&gt;
 From: &amp;quot;Geocaching&amp;quot; &amp;lt;noreply@geocaching.com&amp;gt;&lt;br /&gt;
 PHP-Beispiel:&lt;br /&gt;
 $headers .=&amp;#039;From: &amp;quot;Narda&amp;quot; &amp;lt;&amp;#039;.$from.&amp;quot;&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
=== Testmail ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   $template = &amp;quot;Dies ist ein Test&amp;quot;;&lt;br /&gt;
   $empfaenger = &amp;quot;schlegel@geo-bit.de&amp;quot;;&lt;br /&gt;
   // Trenner für den Anhang&lt;br /&gt;
   $trenner = md5( time() );&lt;br /&gt;
&lt;br /&gt;
   // Mail Header erstellen&lt;br /&gt;
   $mailheader = &amp;#039;&amp;#039;;&lt;br /&gt;
   $mailheader .= &amp;quot;Reply-To: Schlegel&amp;lt;schlegel@geo-bit.de&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
   $mailheader .= &amp;quot;Return-Path: noreply@&amp;quot; .$_SERVER[&amp;#039;SERVER_NAME&amp;#039;]. &amp;quot;\r\n&amp;quot;;&lt;br /&gt;
   $mailheader .= &amp;quot;Message-ID: &amp;lt;&amp;quot; .time(). &amp;quot; noreply@&amp;quot; .$_SERVER[&amp;#039;SERVER_NAME&amp;#039;]. &amp;quot;&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
   $mailheader .= &amp;quot;X-Mailer: PHP v&amp;quot; .phpversion(). &amp;quot;\r\n&amp;quot;;&lt;br /&gt;
   $mailheader .= &amp;quot;From: Keine Antwort&amp;lt;noreply@&amp;quot; .$_SERVER[&amp;#039;SERVER_NAME&amp;#039;]. &amp;quot;&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
   $mailheader .= &amp;quot;MIME-Version: 1.0\r\n&amp;quot;;&lt;br /&gt;
   $mailheader .= &amp;quot;Content-Type: multipart/mixed;\r\n&amp;quot;;&lt;br /&gt;
   $mailheader .= &amp;quot; boundary = &amp;quot; .$trenner;&lt;br /&gt;
   $mailheader .= &amp;quot;\r\n\r\n&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
   // Mailbody vorbereiten&lt;br /&gt;
   $mailbody  = &amp;quot;This is a multi-part message in MIME format\r\n&amp;quot;;&lt;br /&gt;
   $mailbody .= &amp;quot;--&amp;quot; .$trenner. &amp;quot;\r\n&amp;quot;;&lt;br /&gt;
   $mailbody .= &amp;quot;Content-Type: text/html; charset=UTF-8\r\n&amp;quot;;&lt;br /&gt;
   $mailbody .= &amp;quot;Content-Transfer-Encoding: 8bit\r\n\r\n&amp;quot;;&lt;br /&gt;
   $mailbody .= $template. &amp;quot;\r\n\r\n&amp;quot;;&lt;br /&gt;
   echo($mailheader);&lt;br /&gt;
   echo($mailbody);&lt;br /&gt;
   // Email versenden&lt;br /&gt;
   if (mail( $empfaenger, htmlspecialchars( $betreff ), $mailbody, $mailheader ))&lt;br /&gt;
   {&lt;br /&gt;
       // Bei erfolgreichem Versand Danke-Seite anzeigen&lt;br /&gt;
       echo &amp;#039;Danke, die Email wurde verschickt!&amp;#039;;&lt;br /&gt;
   }else{&lt;br /&gt;
	echo &amp;#039;Fehler beim Versand&amp;#039;;&lt;br /&gt;
   }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== Einfache Text E-Mail mit Template ===&lt;br /&gt;
Einfache Text Email&lt;br /&gt;
&lt;br /&gt;
Zuerst das Listing unserer Template Datei mailbody.txt&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Soeben ist eine Nachricht von ###NAME### eingetroffen.&lt;br /&gt;
Als Antwortadresse wurde ###EMAIL### angegeben.&lt;br /&gt;
Die Nachricht die gesendet wurde:&lt;br /&gt;
###NACHRICHT###&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wie man unschwer erkennt, ist das ganz normaler und schlichter Text. Lediglich die Platzhalter darin fallen auf. Diese Platzhalter korrespondieren in unserem Script mit den Benutzereingaben und werden in unserem Script durch diese ersetzt.&lt;br /&gt;
Dadurch das wir den Text, der später per Email an uns geschickt wird, in einer eigenen Datei ablegen, können wir den Text schnell und flexibel beliebig verändern und erweitern. Da es sich hierbei um einen Mailer handelt der nur reinen Text verschickt, müssen wir auf jegliche Art von Formatierungen verzichten.&lt;br /&gt;
&lt;br /&gt;
Bisher haben wir das HTML-Formular, die Funktionen und das Mail Template kennengelernt, fehlt nur noch das Hauptscript, dass wir uns gleich mal vorknöpfen.&lt;br /&gt;
&lt;br /&gt;
Listing der Datei mail.php&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
 &lt;br /&gt;
header( &amp;#039;Content-Type: text/html; charset=utf-8&amp;#039; );&lt;br /&gt;
 &lt;br /&gt;
// Empfänger Email&lt;br /&gt;
$empfaenger = &amp;#039;max.mustermann@domain.tld&amp;#039;;&lt;br /&gt;
 &lt;br /&gt;
// Prüfen ob das Formular abgeschickt wurde&lt;br /&gt;
if (isset($_POST[&amp;#039;senden&amp;#039;]))&lt;br /&gt;
{&lt;br /&gt;
    // Funktionen einbinden&lt;br /&gt;
    include( &amp;#039;funktionen.inc.php&amp;#039; );&lt;br /&gt;
 &lt;br /&gt;
    // Benutzereingaben bereinigen und auf Injection prüfen&lt;br /&gt;
    cleanInput();&lt;br /&gt;
 &lt;br /&gt;
    // Name prüfen&lt;br /&gt;
    $name = checkName( $_POST[&amp;#039;name&amp;#039;] );&lt;br /&gt;
    // Email prüfen&lt;br /&gt;
    $email = checkEmail( $_POST[&amp;#039;email&amp;#039;] );&lt;br /&gt;
    // Betreff und Nachricht prüfen&lt;br /&gt;
    if ((strlen( $_POST[&amp;#039;betreff&amp;#039;] ) &amp;lt; 5) || (strlen( $_POST[&amp;#039;nachricht&amp;#039;] ) &amp;lt; 5))&lt;br /&gt;
    {&lt;br /&gt;
        die( &amp;#039;Bitte füllen Sie alle Felder aus!&amp;#039; );&lt;br /&gt;
    }&lt;br /&gt;
    else&lt;br /&gt;
    {&lt;br /&gt;
        $betreff   = $_POST[&amp;#039;betreff&amp;#039;];&lt;br /&gt;
        $nachricht = $_POST[&amp;#039;nachricht&amp;#039;];&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    // --------------------------------------------------------------------------------&lt;br /&gt;
    // Wurde das Script bisher nicht abgebrochen, wurde das Formular korrekt ausgefüllt&lt;br /&gt;
    // --------------------------------------------------------------------------------&lt;br /&gt;
 &lt;br /&gt;
    // Template mit dem Mailbody laden und für den Versand vorbereiten&lt;br /&gt;
    $mailbody = file_get_contents( &amp;#039;mailbody.txt&amp;#039; );&lt;br /&gt;
    // Platzhalter mit den Benutzereingaben ersetzen&lt;br /&gt;
    $mailbody = str_replace( &amp;#039;###NAME###&amp;#039;, htmlspecialchars( $name ), $mailbody );&lt;br /&gt;
    $mailbody = str_replace( &amp;#039;###EMAIL###&amp;#039;, $email, $mailbody );&lt;br /&gt;
    $mailbody = str_replace( &amp;#039;###NACHRICHT###&amp;#039;, htmlspecialchars( $nachricht ), $mailbody );&lt;br /&gt;
 &lt;br /&gt;
    // Mail Header erstellen&lt;br /&gt;
    $mailheader  = &amp;quot;From: PHP Email Tutorial&amp;lt;noreply@&amp;quot; .$_SERVER[&amp;#039;SERVER_NAME&amp;#039;]. &amp;quot;&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
    $mailheader .= &amp;quot;Reply-To: &amp;quot; .$name. &amp;quot;&amp;lt;&amp;quot; .$email. &amp;quot;&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
    $mailheader .= &amp;quot;Return-Path: noreply@&amp;quot; .$_SERVER[&amp;#039;SERVER_NAME&amp;#039;]. &amp;quot;\r\n&amp;quot;;&lt;br /&gt;
    $mailheader .= &amp;quot;MIME-Version: 1.0\r\n&amp;quot;;&lt;br /&gt;
    $mailheader .= &amp;quot;Content-Type: text/plain; charset=UTF-8\r\n&amp;quot;;&lt;br /&gt;
    $mailheader .= &amp;quot;Content-Transfer-Encoding: 7bit\r\n&amp;quot;;&lt;br /&gt;
    $mailheader .= &amp;quot;Message-ID: &amp;lt;&amp;quot; .time(). &amp;quot; noreply@&amp;quot; .$_SERVER[&amp;#039;SERVER_NAME&amp;#039;]. &amp;quot;&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
    $mailheader .= &amp;quot;X-Mailer: PHP v&amp;quot; .phpversion(). &amp;quot;\r\n\r\n&amp;quot;;&lt;br /&gt;
 &lt;br /&gt;
    // Email versenden&lt;br /&gt;
    if (@mail( $empfaenger, htmlspecialchars( $betreff ), $mailbody, $mailheader ))&lt;br /&gt;
    {&lt;br /&gt;
        // Bei erfolgreichem Versand Danke-Seite anzeigen&lt;br /&gt;
        echo &amp;#039;Danke, die Email wurde verschickt!&amp;#039;;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Das sieht im ersten Moment mehr und wilde&lt;br /&gt;
r aus, als es das eigentlich ist. Der obere Teil ist schnell erklärt. Zunächst setzen wir die Email des Empfängers, der idR wir selbst sind. Dann wird geprüft ob das Formular überhaupt abgeschickt wurde und wenn dem so ist, binden wir die benötigten Funktionen ein und überprüfen die Benutzereingaben.&lt;br /&gt;
&lt;br /&gt;
Mit den Zeilen ...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    // Template mit dem Mailbody laden und für den Versand vorbereiten&lt;br /&gt;
    $mailbody = file_get_contents( &amp;#039;mailbody.txt&amp;#039; );&lt;br /&gt;
    // Platzhalter mit den Benutzereingaben ersetzen&lt;br /&gt;
    $mailbody = str_replace( &amp;#039;###NAME###&amp;#039;, htmlspecialchars( $name ), $mailbody );&lt;br /&gt;
    $mailbody = str_replace( &amp;#039;###EMAIL###&amp;#039;, $email, $mailbody );&lt;br /&gt;
    $mailbody = str_replace( &amp;#039;###NACHRICHT###&amp;#039;, htmlspecialchars( $nachricht ), $mailbody );&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
... laden wir das Mail Template (file_get_contents) und ersetzen mit einfachen str_replace Funktionen die Platzhalter. Auch wenn wir bereits auf mögliche Injections geprüft haben, entschärfen wir dennoch die Eingaben mit htmlspecialchars, damit uns niemand etwas unterschiebt. Bei der Email ist das nicht nötig, da diese sonst nicht durch den Filter gekommen wäre.&lt;br /&gt;
&lt;br /&gt;
Jetzt kommen wir zu dem wichtigsten Teil, der ein erfolgreiches Versenden überhaupt erst möglich macht: dem Mail Header.&lt;br /&gt;
&lt;br /&gt;
Der Mail Header ist der Kopf der Email, der alle relevanten und wichtigen Informationen über unsere Email enthält. Sehr sehr häufig sieht man in Scripts und Tutorials, dass hier lediglich das &amp;quot;From:&amp;quot; angegeben ist. Wenn nur diese Information angegeben ist, bleibt die Mail sehr häufig in einem Spamfilter hängen. Kein Mensch würde auf die Idee kommen einen echten Brief zu verschicken und als Beschreibung auf dem Brief nur einen Name angeben, ohne komplette Anschrift und Absenderadresse. Wieso dann bei einer Email?!&lt;br /&gt;
&lt;br /&gt;
Schauen wir uns also an wie ein Header aussieht, der die wichtigsten Angaben enthält:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    $mailheader  = &amp;quot;From: PHP Email Tutorial&amp;lt;noreply@&amp;quot; .$_SERVER[&amp;#039;SERVER_NAME&amp;#039;]. &amp;quot;&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
    $mailheader .= &amp;quot;Reply-To: &amp;quot; .$name. &amp;quot;&amp;lt;&amp;quot; .$email. &amp;quot;&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
    $mailheader .= &amp;quot;Return-Path: noreply@&amp;quot; .$_SERVER[&amp;#039;SERVER_NAME&amp;#039;]. &amp;quot;\r\n&amp;quot;;&lt;br /&gt;
    $mailheader .= &amp;quot;MIME-Version: 1.0\r\n&amp;quot;;&lt;br /&gt;
    $mailheader .= &amp;quot;Content-Type: text/plain; charset=UTF-8\r\n&amp;quot;;&lt;br /&gt;
    $mailheader .= &amp;quot;Content-Transfer-Encoding: 7bit\r\n&amp;quot;;&lt;br /&gt;
    $mailheader .= &amp;quot;Message-ID: &amp;lt;&amp;quot; .time(). &amp;quot; noreply@&amp;quot; .$_SERVER[&amp;#039;SERVER_NAME&amp;#039;]. &amp;quot;&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
    $mailheader .= &amp;quot;X-Mailer: PHP v&amp;quot; .phpversion(). &amp;quot;\r\n\r\n&amp;quot;;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Steuerungzeichen &amp;quot;\r\n&amp;quot; entsprechen einen Wagenrücklauf und Zeilenvorschub oder anders ausgedrückt, ein Zeilenumbruch. Diese Steuerungzeichen sind betriebssystemabhängig und müssen ggfs. angepasst werden. Auf Linux würde man z.B. nur &amp;quot;\n&amp;quot; verwenden. Schauen wir uns nun die anderen angaben an:&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;From&amp;#039;&amp;#039;&amp;#039; - Das ist die Absendeadresse und der dazugehörige Name. Es ist üblich diesen in der Form Name anzugeben. Das ist die absolute Minimumangabe für inen Mailheader. Fehlt das From, wird der Versand der Mail fehlschlagen.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Reply-To&amp;#039;&amp;#039;&amp;#039; - Das Format kann entweder nur eine Email Adresse sein, oder man wählt das Format wir bei From. Dieses Feld ist die Antwortadresse an die die Mail geschickt wird, wenn wir im Mail Client auf antworten klicken.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Return-Path&amp;#039;&amp;#039;&amp;#039; - Konnte die Mail nicht zugestellt werden, wird dies an diese Adresse gemeldet.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;MIME-Version&amp;#039;&amp;#039;&amp;#039; - Entspricht dem MIME Typ der Mail.&lt;br /&gt;
    &lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Content-Type&amp;#039;&amp;#039;&amp;#039; - Das ist die Information die dem Mail Client mitteilt, um welche Art Mail es sich handelt und welcher Zeichensatz zur Darstellung benutzt werden soll.&lt;br /&gt;
    &lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Content-Transfer-Encoding&amp;#039;&amp;#039;&amp;#039; - Dies beschreibt die Art der Übertragung und wie sowohl Mailserver, als auch Email Clients diese Mail interpretieren. 7bit ist die kleinste Form, die maximal mögliche Kompatibilität ermöglicht. Beim 7bit ASCII Zeichensatz können die ersten 128 zeichen der ASCII Tabelle dargestellt werden. Zeichen wie deutsche Umlaute sind darin nicht vorgesehen. Bei der 8bit Übertragung können bis zu 256 zeichen dargestellt werden. Ältere Mailerver, so liest man, verstehen nur 7bit und verwerfen Anfragen die mit 8bit übertragen werden sollen. Anders ausgedrückt, es kann passieren das die Mail nicht ankommt. Ich persönlich hatte damit allerdings noch nie Probleme und die 7bit &amp;quot;Zwangsangabe&amp;quot; scheint veraltet zu sein.&lt;br /&gt;
    &lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Message-ID&amp;#039;&amp;#039;&amp;#039; - Die Message ID ist einmalig, bzw. sollte es sein, wodurch die Mail eindeutig zugeordnet werden kann.&lt;br /&gt;
    &lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;X-Mailer&amp;#039;&amp;#039;&amp;#039; - Beschreibt den Client der die Mail versendet hat. In unserem Fall geben wir die PHP Version an, damit Mailserver auf der Route wissen, dass diese Mail mit PHP verschickt wurde.&lt;br /&gt;
&lt;br /&gt;
Es gibt noch weitere Felder und Varianten, die uns aber im moment nicht kümmern. Im Abschnitt Mail mit Anhang werden wir noch einen etwas anderen Header kennen lernen.&lt;br /&gt;
Speziell die letzten beiden Angaben (Message ID und X_Mailer) im Header oben sind sehr wichtige Informationen. Fehlen diese Angaben, ist die Wahrscheinlichkeit sehr hoch, dass die Mail niemals beim Empfänger ankommen wird, weil die Mail irgendwo unterwegs in einem Spamfilter hängen bleibt und nicht weitergeleitet wird!&lt;br /&gt;
&lt;br /&gt;
Falls also eine Mail nicht ankommt, liegt das in den aller meisten Fällen entweder am Transfer-Encoding (7bit oder 8bit) oder an fehlenden Absendeangaben!&lt;br /&gt;
&lt;br /&gt;
Der Rest des Scripts ist sehr einfach, weil hier einfach nur noch die Mail verschickt wird.&lt;br /&gt;
&lt;br /&gt;
    if (@mail( $empfaenger, htmlspecialchars( $betreff ), $mailbody, $mailheader ))&lt;br /&gt;
    {&lt;br /&gt;
        // Bei erfolgreichem Versand Danke-Seite anzeigen&lt;br /&gt;
        echo &amp;#039;Danke, die Email wurde verschickt!&amp;#039;;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
Die mail-Funktion kennt noch einen 5. Parameter auf den ich jetzt nicht eingehen werde, weil dieser nur in den seltensten Fällen unterstützt wird. Wer mehr darüber erfahren möchte kann sich darüber in der Online-Doku informieren. Die mail-Funktion selbst liefert entweder TRUE oder FALSE zurück. Bei einem FALSE konnte die Mail nicht für den Versand übergeben werden und wir können entsprechend darauf reagieren. Im Falle von TRUE heisst das zwar das die Mail für den Versand angenommen wurde, aber es ist nicht prüfbar ob die Mail auch tatsächlich beim Empfänger ankam! Einige Gründe dafür stehen weiter oben. Wurde die Mail für den Versand akzeptiert, können wir darauf angemessen reagieren, indem wir den Besucher zu einer Danke-Seite weiterleiten oder, was weiter unter gezeigt wird, dem Benutzer eine Empfangsbestätigung, respektive Kopie der Mail an seine Adresse schicken.&lt;br /&gt;
&lt;br /&gt;
Soweit so gut. Dieser Abschnitt fiel etwas länger aus, weil ich die prinzipielle Funktionsweise und den Header beschrieben habe. Die nachfolgenden Beispiele sind über große Strecken identisch, deswegen spare ich mir dort die Erklärungen und gehe nur auf die abweichenden Passagen ein.&lt;br /&gt;
&lt;br /&gt;
=== E-Mail mit CSS Formatierung ===&lt;br /&gt;
&lt;br /&gt;
Eine Email im HTML Format zu senden ist im Grunde genommen nichts anderes, als eine einzelne Webseite per Email zu verschicken. Wir haben also mehr oder weniger freie Hand was die Gestaltung angeht, solange wir uns an die HTML und CSS Richtlinien halten. Das wird sofort ersichtlicht, wenn man das Template für die Email sieht.&lt;br /&gt;
&lt;br /&gt;
Listing der Datei mailbody.txt&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE html PUBLIC &amp;quot;-//W3C//DTD XHTML 1.0 Transitional//EN&amp;quot; &amp;quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;html xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot; xml:lang=&amp;quot;de&amp;quot; lang=&amp;quot;de&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
&amp;lt;meta http-equiv=&amp;quot;Content-Type&amp;quot; content=&amp;quot;text/html; charset=utf-8&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;title&amp;gt;Email als HTML&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;style type=&amp;quot;text/css&amp;quot;&amp;gt;&lt;br /&gt;
body { font: normal 12px Verdana, Arial, Helvetica, sans-serif; }&lt;br /&gt;
a { color: blue; text-decoration: none; }&lt;br /&gt;
h2 { font-size: 16px; font-weight: bold; }&lt;br /&gt;
.gruen { color: green; }&lt;br /&gt;
&amp;lt;/style&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt;Soeben ist eine Nachricht von &amp;lt;span class=&amp;quot;gruen&amp;quot;&amp;gt;###NAME###&amp;lt;/span&amp;gt; eingetroffen.&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Als Antwortadresse wurde &amp;lt;a href=&amp;quot;mailto:###EMAIL###&amp;quot;&amp;gt;###EMAIL###&amp;lt;/a&amp;gt; angegeben.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Die Nachricht die gesendet wurde lautet:&amp;lt;br /&amp;gt;&lt;br /&gt;
###NACHRICHT###&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Template besteht aus einer normalen HTML Datei mit etwas CSS. Auch hier treffen wir wieder unsere Platzhalter, die durch die Benutzereingaben ersetzt werden.&lt;br /&gt;
&lt;br /&gt;
Die Datei funktionen.inc.php ist identisch mit wie beim vorherigen Beispiel. Auch die mail.php weicht nur minimal vom letzten Beispiel ab - das aber mit großer Wirkung!&lt;br /&gt;
Die erste Abweichung findet in der Zeile zum ersetzen des Platzhalters für die Nachricht statt.&lt;br /&gt;
&lt;br /&gt;
 $mailbody = str_replace( &amp;#039;###NACHRICHT###&amp;#039;, nl2br( htmlspecialchars( $nachricht ) ), $mailbody );&lt;br /&gt;
&lt;br /&gt;
Ergänzt wurde hier die Funktion nl2br. Diese Funktion bewirkt, dass das Steuerungzeichen für einen Zeilenumbruch (\n) in ein HTML-konformes Break (&amp;lt;br /&amp;gt;) umgewandelt wird. Ohne diese Funktion hätten wir bei der Ausgabe nur eine laaaange Zeile Text ohne neue Absätze und Umbrüche.&lt;br /&gt;
&lt;br /&gt;
Die nächsten beiden Veränderungen finden im Mail Header statt. Da wird nun ja keinen reinen Text, sondern HTML verschicken, muß natürlich der Content-Type angepasst werden. Ebenso ändern wir das Transfer-Encoding auf 8bit. Hier die beiden geänderten Zeilen:&lt;br /&gt;
&lt;br /&gt;
    $mailheader .= &amp;quot;Content-Type: text/html; charset=UTF-8\r\n&amp;quot;;&lt;br /&gt;
    $mailheader .= &amp;quot;Content-Transfer-Encoding: 8bit\r\n&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
That&amp;#039;s it!&lt;br /&gt;
Diese kleinen Veränderungen haben eine solch große Auswirkung auf die Art der Darstellung!&lt;br /&gt;
&lt;br /&gt;
Das Ergebnis im Mail Client:&lt;br /&gt;
&lt;br /&gt;
(Deutlich zu sehen das die H2-Überschrift sich absetzt und auch der Name durch das CSS farblich hervorgehoben wird)&lt;br /&gt;
&lt;br /&gt;
Vermutlich stand jeder angehende Programmierer schon mal an dieser Stelle. Voller Stolz blickt man in sein Postfach, wo die erste Mail vom eigenen Formmailer eingetroffen ist. Dann denkt man sich: &amp;quot;Das war ja einfach, mit nur so wenigen Zeilen Code so ein Ergebnis zu erzielen. Wie schwer kann es da schon sein auch eine Datei mitzuschicken?!&amp;quot;.&lt;br /&gt;
Angesichts der oben gezeigten Beispiele, und wie minimal der Unterschied zwischen Text Mail und HTML Mail ist, neigt man dazu zu denken, dass dies mit einem Dateianhang ebenso einfach ist.&lt;br /&gt;
&lt;br /&gt;
Tja, leider ist dem nicht so. Das senden von Dateianhänge ist erheblich aufwändiger als das senden einer Text/HTML Mail. Das Formular ist abweichend, der Mail Header ist abweichend, der Mail Body muß in einzelne Teilbereiche getrennt werden, Dateianhänge müssen Richtlinien beachten, was die Zeilenlänge und die Art der Zeichen innerhalb der Mail angeht.&lt;br /&gt;
Glücklicherweise hilft uns PHP bei den meisten Sachen und deshalb werden wir auch dieses Problem meistern. :)&lt;br /&gt;
&lt;br /&gt;
=== E-Mail mit CSS und Anhang ===&lt;br /&gt;
Siehe auch: [[PHP - Upload Formular]]&lt;br /&gt;
Todo Quelle siehe oben (2012-03)&lt;br /&gt;
&lt;br /&gt;
HTML Email mit CSS Formatierung und Dateianhang&lt;br /&gt;
&lt;br /&gt;
Da wir eine Datei mit der Mail verschicken möchten, muß das Formular natürlich dahingehend erweitert werden, dass ein Upload auch möglich ist. In unserem Beispiel möchten wir eine JPG datei anhängen und erlauben auch nur das hochladen dieses Bildtyps.&lt;br /&gt;
Die Template Datei ist identisch zum vorherigen HTML Beispiel. In der Datei funktionen.inc.php fügen wir aber eine weitere Funktion hinzu, die für uns prüft, ob eine Datei hochgeladen wurde und ob es sich dabei um eine JPG Datei handelt.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
function checkFile()&lt;br /&gt;
{&lt;br /&gt;
    if ($_FILES[&amp;#039;datei&amp;#039;][&amp;#039;error&amp;#039;] == 0 &amp;amp;&amp;amp;&lt;br /&gt;
        $_FILES[&amp;#039;datei&amp;#039;][&amp;#039;type&amp;#039;] == &amp;#039;image/jpeg&amp;#039;)&lt;br /&gt;
    {&lt;br /&gt;
        return $_FILES[&amp;#039;datei&amp;#039;][&amp;#039;name&amp;#039;];&lt;br /&gt;
    }&lt;br /&gt;
    else&lt;br /&gt;
    {&lt;br /&gt;
        die( &amp;#039;Bitte eine gültige JPG Datei anhängen!&amp;#039; );&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In der Datei mail.php wird sich nun einiges ändern. Zunächst erweitern wir die einleitende Abfrage dahingehend, dass wir feststellen ob auch eine Datei angehängt wurde ...&lt;br /&gt;
&lt;br /&gt;
 if (isset($_POST[&amp;#039;senden&amp;#039;]) &amp;amp;&amp;amp; $_FILES[&amp;#039;datei&amp;#039;][&amp;#039;size&amp;#039;] &amp;gt; 0)&lt;br /&gt;
&lt;br /&gt;
... und fügen ebenso den Aufruf für die neue Funktion hinzu, die prüft ob ein JPG hochgeladen wurde:&lt;br /&gt;
&lt;br /&gt;
 $uploadname = checkFile();&lt;br /&gt;
&lt;br /&gt;
Das weitere Listing der Datei mail.php sieht wie folgt aus:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    // Template mit dem Mailbody laden&lt;br /&gt;
    $template = file_get_contents( &amp;#039;mailbody.txt&amp;#039; );&lt;br /&gt;
    // Trenner für den Anhang&lt;br /&gt;
    $trenner = md5( time() );&lt;br /&gt;
 &lt;br /&gt;
    // Platzhalter mit den Benutzereingaben ersetzen&lt;br /&gt;
    $template = str_replace( &amp;#039;###NAME###&amp;#039;, htmlspecialchars( $name ), $template );&lt;br /&gt;
    $template = str_replace( &amp;#039;###EMAIL###&amp;#039;, $email, $template );&lt;br /&gt;
    $template = str_replace( &amp;#039;###NACHRICHT###&amp;#039;, nl2br( htmlspecialchars( $nachricht ) ), $template );&lt;br /&gt;
 &lt;br /&gt;
    // Mail Header erstellen&lt;br /&gt;
    $mailheader .= &amp;quot;Reply-To: &amp;quot; .$name. &amp;quot;&amp;lt;&amp;quot; .$email. &amp;quot;&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
    $mailheader .= &amp;quot;Return-Path: noreply@&amp;quot; .$_SERVER[&amp;#039;SERVER_NAME&amp;#039;]. &amp;quot;\r\n&amp;quot;;&lt;br /&gt;
    $mailheader .= &amp;quot;Message-ID: &amp;lt;&amp;quot; .time(). &amp;quot; noreply@&amp;quot; .$_SERVER[&amp;#039;SERVER_NAME&amp;#039;]. &amp;quot;&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
    $mailheader .= &amp;quot;X-Mailer: PHP v&amp;quot; .phpversion(). &amp;quot;\r\n&amp;quot;;&lt;br /&gt;
    $mailheader .= &amp;quot;From: PHP Email Tutorial&amp;lt;noreply@&amp;quot; .$_SERVER[&amp;#039;SERVER_NAME&amp;#039;]. &amp;quot;&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
    $mailheader .= &amp;quot;MIME-Version: 1.0\r\n&amp;quot;;&lt;br /&gt;
    $mailheader .= &amp;quot;Content-Type: multipart/mixed;\r\n&amp;quot;;&lt;br /&gt;
    $mailheader .= &amp;quot; boundary = &amp;quot; .$trenner;&lt;br /&gt;
    $mailheader .= &amp;quot;\r\n\r\n&amp;quot;;&lt;br /&gt;
 &lt;br /&gt;
    // Mailbody vorbereiten&lt;br /&gt;
    $mailbody  = &amp;quot;This is a multi-part message in MIME format\r\n&amp;quot;;&lt;br /&gt;
    $mailbody .= &amp;quot;--&amp;quot; .$trenner. &amp;quot;\r\n&amp;quot;;&lt;br /&gt;
    $mailbody .= &amp;quot;Content-Type: text/html; charset=UTF-8\r\n&amp;quot;;&lt;br /&gt;
    $mailbody .= &amp;quot;Content-Transfer-Encoding: 8bit\r\n\r\n&amp;quot;;&lt;br /&gt;
    $mailbody .= $template. &amp;quot;\r\n\r\n&amp;quot;;&lt;br /&gt;
 &lt;br /&gt;
    // Anhang anfügen&lt;br /&gt;
    $mailbody .= &amp;quot;--&amp;quot; .$trenner. &amp;quot;\r\n&amp;quot;;&lt;br /&gt;
    $mailbody .= &amp;quot;Content-Type: image/jpeg; name=\&amp;quot;&amp;quot; .$uploadname. &amp;quot;\&amp;quot;\r\n&amp;quot;;&lt;br /&gt;
    $mailbody .= &amp;quot;Content-Transfer-Encoding: base64\r\n&amp;quot;;&lt;br /&gt;
    $mailbody .= &amp;quot;Content-Disposition: attachment; filename=\&amp;quot;&amp;quot; .$uploadname. &amp;quot;\&amp;quot;\r\n\r\n&amp;quot;;&lt;br /&gt;
    $mailbody .= chunk_split( base64_encode( file_get_contents( $_FILES[&amp;#039;datei&amp;#039;][&amp;#039;tmp_name&amp;#039;] ) ) );&lt;br /&gt;
    $mailbody .= &amp;quot;\n&amp;quot;;&lt;br /&gt;
 &lt;br /&gt;
    // Email versenden&lt;br /&gt;
    if (@mail( $empfaenger, htmlspecialchars( $betreff ), $mailbody, $mailheader ))&lt;br /&gt;
    {&lt;br /&gt;
        // Bei erfolgreichem Versand Danke-Seite anzeigen&lt;br /&gt;
        echo &amp;#039;Danke, die Email wurde verschickt!&amp;#039;;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wir sehen auf den ersten Blick, dass dieser Code ganz anders aussieht als das vorherige Beispiel. Gehen wir den Code mal der Reihe nach durch, um etwas Licht in&amp;#039;s Dunkel zu bringen.&lt;br /&gt;
&lt;br /&gt;
Im oberen Bereich erzeugen wir einen eindeutigen String, den wir zum trennen der verschiedenen Teilbereiche der Mail verwenden werden:&lt;br /&gt;
&lt;br /&gt;
 $trenner = md5( time() );&lt;br /&gt;
&lt;br /&gt;
Der erste Teil des Mail Header ist uns bereits bekannt, aber beim Content-Type benötigen wir nun eine andere Angabe.&lt;br /&gt;
&lt;br /&gt;
 $mailheader .= &amp;quot;Content-Type: multipart/mixed;\r\n&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
Dieser Content-Type ähnelt der Angabe &amp;quot;multipart/form-data&amp;quot; in einem HTML Formular, wenn wir dort ebenfalls gemischte Inhalte haben, nämlich Text und Dateien. Damit der Mail Client nun weiß an welchen Stellen im gesendeten Quellcode er Inhalte trennen muß, teilen wir im Header den boundary-String mit.&lt;br /&gt;
&lt;br /&gt;
An dieser Stelle möchte ich noch auf 2 wichtige Dinge hinweisen. Das Leerzeichen vor dem &amp;quot;boundary&amp;quot; im Header ist kein Versehen! Es kann tatsächlich dazu führen das eine Mail nicht korrekt dargestellt wird, wenn dieses Leerzeichen fehlt. Ebenso ist es wichtig, dass die &amp;quot;From&amp;quot;-Angabe unmittelbar vor der &amp;quot;MIME-Version&amp;quot; und dem &amp;quot;Content-Type&amp;quot; steht. Vertauscht man die Reihenfolge der Header Angabe, führt das z.B. bei mir dazu, dass ich im Thunderbird nur eine leere Seite als Mail angezeigt bekomme, obwohl der komplette Mail Inhalt im Quelltext einsehbar ist.&lt;br /&gt;
&lt;br /&gt;
Die nächste Zeile ...&lt;br /&gt;
&lt;br /&gt;
 $mailbody  = &amp;quot;This is a multi-part message in MIME format\r\n&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
... steht vor der Nachricht im Head Bereich in der Email. Sie scheint nicht zwingend erforderlich zu sein, aber Mail Clients fügen diese ebenfalls hinzu, wenn man mit z.B. Thunderbird eine Email verschickt. Ich vermute, dass dies aus Gründen der Kompatibilität zu einigen Mail Server geschieht.&lt;br /&gt;
&lt;br /&gt;
Nun folgt der erste Teil unserer Email, der Text.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    $mailbody .= &amp;quot;--&amp;quot; .$trenner. &amp;quot;\r\n&amp;quot;;&lt;br /&gt;
    $mailbody .= &amp;quot;Content-Type: text/html; charset=UTF-8\r\n&amp;quot;;&lt;br /&gt;
    $mailbody .= &amp;quot;Content-Transfer-Encoding: 8bit\r\n\r\n&amp;quot;;&lt;br /&gt;
    $mailbody .= $template. &amp;quot;\r\n\r\n&amp;quot;;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Durch den Trenner teilen wir dem Mail Client mit, dass zwischen diesem Trenner und dem nächsten Trenner, bzw. dem Ende der Mail, ein Teilabschnitt dieser Email steht. Damit der Client weiß um was es sich bei diesem Abschnitt handelt, teilen wir ihm das mithilfe des &amp;quot;Content-Type&amp;quot; und dem &amp;quot;Transfer-Encoding&amp;quot; mit. Durch die Angabe &amp;quot;text/html&amp;quot; weiß nun der Client, dass alles bis zum nächsten Trennen als HTML dargestellt werden soll.&lt;br /&gt;
&lt;br /&gt;
Der nächste Teilabschnitt der Mail ist unser Bild:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    // Anhang anfügen&lt;br /&gt;
    $mailbody .= &amp;quot;--&amp;quot; .$trenner. &amp;quot;\r\n&amp;quot;;&lt;br /&gt;
    $mailbody .= &amp;quot;Content-Type: image/jpeg; name=\&amp;quot;&amp;quot; .$uploadname. &amp;quot;\&amp;quot;\r\n&amp;quot;;&lt;br /&gt;
    $mailbody .= &amp;quot;Content-Transfer-Encoding: base64\r\n&amp;quot;;&lt;br /&gt;
    $mailbody .= &amp;quot;Content-Disposition: attachment; filename=\&amp;quot;&amp;quot; .$uploadname. &amp;quot;\&amp;quot;\r\n\r\n&amp;quot;;&lt;br /&gt;
    $mailbody .= chunk_split( base64_encode( file_get_contents( $_FILES[&amp;#039;datei&amp;#039;][&amp;#039;tmp_name&amp;#039;] ) ) );&lt;br /&gt;
    $mailbody .= &amp;quot;\n&amp;quot;;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Wieder folgt zunächst der Trenner. Der Client stoppt seine HTML Ausgabe an dieser Position und wird ab diesem Punkt ausgeben, was ihm durch den &amp;quot;Content-Type&amp;quot; und das &amp;quot;Transfer-Encoding&amp;quot; aufgetragen wird. Wir sehen nun, dass wir als Content-Type eine JPG Datei ausgeben möchten. Der Name ergibt sich aus dem Rückgabewert der Funktion, die den Upload zuvor überprüft hat. Als Transfer-Encoding wird &amp;quot;base64&amp;quot; angegeben. Diese Angabe ist überaus wichtig um eine korrekte Übertragung der Daten zu gewährleisten. Mit der Angabe &amp;quot;Content-Disposition: attachment;&amp;quot; legen wir fest, dass der Anhang wirklich an die Mail angehängt wird. Eine andere Möglichkeit wäre hier das Einbetten in den Mailtext, indem man als Content-Disposition ein &amp;quot;inline&amp;quot; angibt. Die nächste Zeile ist ziemlich tricky:&lt;br /&gt;
&lt;br /&gt;
 $mailbody .= chunk_split( base64_encode( file_get_contents( $_FILES[&amp;#039;datei&amp;#039;][&amp;#039;tmp_name&amp;#039;] ) ) );&lt;br /&gt;
&lt;br /&gt;
Arbeiten wir uns mal von Innen nach Außen durch, weil hier mehrere Funktionen verschachtelt sind. Mit file_get_contents wird eine Datei als String eingelesen. Dies ist hier möglich, weil diese Funktion seit PHP 4.3 binary safe ist. Als einzulesender Dateiname nehmen wir hier den Name der temporären datei, die durch den Upload auf dem Server gelandet ist. Diese Datei steht nur zu genau diesem Zeitpunkt zur Verfügung. Sobald das Script beendet wird oder eine andere Seite geladen wird, existiert diese Datei nicht mehr. Möchte man diese Datei erst zu einem späteren Zeitpunkt verarbeiten, muß man diese zunächst mit move_uploaded_file an eine andere Position kopieren.&lt;br /&gt;
Da wir nun die Bilddatei als String eingelesen haben, wird er mit base64_encode umgewandelt, damit die Datei beschädigt wird, falls es nicht möglich ist die Mail als 8bit zu übertragen. Es wird also aus Gründen der Kompatibilität gemacht. Anschließend wird der String mit chunk_split so aufbereitet, dass die Zeilenlänge 76 Zeichen nicht übersteigt.&lt;br /&gt;
&lt;br /&gt;
Das war&amp;#039;s! Die Daten können nun wieder mit der mail-Funktion versendet werden. Sollte man mehr als eine Datei anhängen wollen, kann man den letzten Schritt beliebig oft wiederholen. Erst Trenner setzen, dann Art der Daten und Übertragungsmodus angeben, die Datei anhängen, fertig.&lt;br /&gt;
&lt;br /&gt;
==== Beispiel Funktion (SPAM Proofed)====&lt;br /&gt;
(Aus Narda Accredited Calibration)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
function send_acc_mail($rma_num,$arrForm,$arrPartner){&lt;br /&gt;
	global $user_db;&lt;br /&gt;
	global $dbase;&lt;br /&gt;
	global $pass_db;&lt;br /&gt;
	global $database;&lt;br /&gt;
	global $pdf_template;&lt;br /&gt;
	global $mail_template;// not used&lt;br /&gt;
	global $mail_template_txt;// only use this for plaintext message (more secure)&lt;br /&gt;
	global $pdf_css;&lt;br /&gt;
	global $narda_mail;&lt;br /&gt;
	global $admin_mail;&lt;br /&gt;
	global $replyto_mail;&lt;br /&gt;
	$partner_mail = $arrPartner[email];&lt;br /&gt;
&lt;br /&gt;
	$arrMarkers = array_merge($arrForm,$arrPartner,array(&amp;quot;rma_num&amp;quot;=&amp;gt;$rma_num));&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
	// PDF-TEMPLATE&lt;br /&gt;
	$pdf_template = file_get_contents( $pdf_template );&lt;br /&gt;
	$pdf_template = replace_markers($pdf_template,$arrMarkers);&lt;br /&gt;
	// Mail Template&lt;br /&gt;
	$mail_template_txt = file_get_contents( $mail_template_txt );&lt;br /&gt;
	$mail_template_txt = replace_markers($mail_template_txt,$arrMarkers);&lt;br /&gt;
&lt;br /&gt;
	//MAIL&lt;br /&gt;
	// Trenner für multipart mail&lt;br /&gt;
    $mid = md5( time() );&lt;br /&gt;
	$filename = &amp;quot;acc-&amp;quot;.$rma_num;&lt;br /&gt;
	&lt;br /&gt;
    // Anhang generieren&lt;br /&gt;
	include(&amp;quot;lib/mpdf56/mpdf.php&amp;quot;);&lt;br /&gt;
	$mpdf=new mPDF(&amp;#039;c&amp;#039;);&lt;br /&gt;
	$mpdf-&amp;gt;SetDisplayMode(&amp;#039;fullpage&amp;#039;);&lt;br /&gt;
	$stylesheet = file_get_contents($pdf_css);&lt;br /&gt;
	$mpdf-&amp;gt;WriteHTML($stylesheet,1); // 1 -&amp;gt; css/style only and no body/html/text&lt;br /&gt;
	$mpdf-&amp;gt;WriteHTML($pdf_template);&lt;br /&gt;
	$pdf_attachment = chunk_split(base64_encode($mpdf-&amp;gt;Output(&amp;#039;&amp;#039;,&amp;#039;S&amp;#039;)));&lt;br /&gt;
   &lt;br /&gt;
	// Mailheader&lt;br /&gt;
	//$to=$partner_mail;&lt;br /&gt;
	$to=&amp;quot;schlegel@geo-bit.de&amp;quot;;&lt;br /&gt;
	$subject = &amp;quot;Accredited Calibration Request&amp;quot;;&lt;br /&gt;
	$headers .= &amp;#039;Reply-To: &amp;#039;.$replyto_mail.&amp;quot;\r\n&amp;quot;;&lt;br /&gt;
    $headers .= &amp;quot;Return-Path: noreply@&amp;quot; .$_SERVER[&amp;#039;SERVER_NAME&amp;#039;]. &amp;quot;\r\n&amp;quot;;&lt;br /&gt;
	$headers .= &amp;#039;X-Mailer: PHP/&amp;#039;.phpversion().&amp;quot;\r\n&amp;quot;;&lt;br /&gt;
	$headers .=&amp;#039;From: NARDA-STS GmbH &amp;lt;&amp;#039;.$narda_mail.&amp;#039;&amp;gt;&amp;#039;.&amp;quot;\r\n&amp;quot;;&lt;br /&gt;
	$headers .= &amp;#039;Cc:&amp;#039;.$narda_mail.&amp;quot;\n&amp;quot;;&lt;br /&gt;
	$headers .= &amp;#039;Bcc:&amp;#039;.$admin_mail.&amp;quot;\n&amp;quot;;&lt;br /&gt;
	&lt;br /&gt;
	$headers .= &amp;quot;MIME-Version: 1.0\r\n&amp;quot;;&lt;br /&gt;
	$headers .= &amp;quot;Content-Type: multipart/mixed; boundary=\&amp;quot;&amp;quot;.$mid.&amp;quot;\&amp;quot;\r\n\r\n&amp;quot;;&lt;br /&gt;
	$headers .= &amp;quot;This is a multi-part message in MIME format.\r\n&amp;quot;;&lt;br /&gt;
	$headers .= &amp;quot;--&amp;quot;.$mid.&amp;quot;\r\n&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
	// Textpart&lt;br /&gt;
	$headers .= &amp;quot;Content-type:text/plain; charset=iso-8859-1\r\n&amp;quot;;&lt;br /&gt;
	$headers .= &amp;quot;Content-Transfer-Encoding: 7bit\r\n\r\n&amp;quot;;&lt;br /&gt;
    //$headers .= &amp;quot;Content-Type: text/html; charset=UTF-8\r\n&amp;quot;;&lt;br /&gt;
    //$headers .= &amp;quot;Content-Transfer-Encoding: 8bit\r\n\r\n&amp;quot;;&lt;br /&gt;
    $headers .= $mail_template_txt.&amp;quot;\r\n\r\n&amp;quot;;&lt;br /&gt;
	$headers .= &amp;quot;--&amp;quot;.$mid.&amp;quot;\r\n&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
	//pdf-att&lt;br /&gt;
	$headers .= &amp;quot;Content-Type: application/pdf; name=\&amp;quot;&amp;quot;.$filename.&amp;quot;\&amp;quot;\r\n&amp;quot;;&lt;br /&gt;
	$headers .= &amp;quot;Content-Transfer-Encoding: base64\r\n&amp;quot;;&lt;br /&gt;
	$headers .= &amp;quot;Content-Disposition: attachment; filename=\&amp;quot;&amp;quot;.$filename.&amp;quot;\&amp;quot;\r\n\r\n&amp;quot;;&lt;br /&gt;
	$headers .= $pdf_attachment.&amp;quot;\r\n\r\n&amp;quot;;&lt;br /&gt;
	$headers .= &amp;quot;--&amp;quot;.$mid.&amp;quot;--&amp;quot;;&lt;br /&gt;
	&lt;br /&gt;
	$addParams = &amp;#039;-fnoreply@&amp;#039;.$_SERVER[&amp;#039;SERVER_NAME&amp;#039;];&lt;br /&gt;
	$success = mail($to, $subject, $body, $headers,$addParams);&lt;br /&gt;
	return $success;&lt;br /&gt;
	//echo($headers);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== E-Mail mit Empfangsbestätigung ===&lt;br /&gt;
&lt;br /&gt;
Eine Empfangsbestätigung verschicken&lt;br /&gt;
&lt;br /&gt;
Das ist genauso einfach wie das verschicken einer ganz einfachen Textmail. Wie wir ja bereits gehört haben, gibt die mail-Funktion bei Erfolg ein TRUE zurück. Damit können wir also feststellen, ob die Nachricht des Benutzers an uns übermittelt wurde und falls ja, schicken wir ihm eine Mail als Bestätigung. Das sieht in etwa so aus:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    if (@mail( $empfaenger, htmlspecialchars( $betreff ), $mailbody, $mailheader ))&lt;br /&gt;
    {&lt;br /&gt;
        // Bei erfolgreichem Versand Danke-Seite anzeigen&lt;br /&gt;
        $mailheader  = &amp;quot;From: Firma Max Mustermann&amp;lt;mustermann@domain.tld&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
        $mailheader .= &amp;quot;Reply-To: Firma Max Mustermann&amp;lt;mustermann@domain.tld&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
        $mailheader .= &amp;quot;Return-Path: noreply@&amp;quot; .$_SERVER[&amp;#039;SERVER_NAME&amp;#039;]. &amp;quot;\r\n&amp;quot;;&lt;br /&gt;
        $mailheader .= &amp;quot;MIME-Version: 1.0\r\n&amp;quot;;&lt;br /&gt;
        $mailheader .= &amp;quot;Content-Type: text/plain; charset=UTF-8\r\n&amp;quot;;&lt;br /&gt;
        $mailheader .= &amp;quot;Content-Transfer-Encoding: 7bit\r\n&amp;quot;;&lt;br /&gt;
        $mailheader .= &amp;quot;Message-ID: &amp;lt;&amp;quot; .time(). &amp;quot; noreply@&amp;quot; .$_SERVER[&amp;#039;SERVER_NAME&amp;#039;]. &amp;quot;&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
        $mailheader .= &amp;quot;X-Mailer: PHP v&amp;quot; .phpversion(). &amp;quot;\r\n\r\n&amp;quot;;&lt;br /&gt;
 &lt;br /&gt;
        // Inhalt der Bestätigung&lt;br /&gt;
        $mailbody = &amp;#039;Vielen Dank für Ihre Email. Wir werden uns in Kürze bei Ihnen melden.&amp;#039;;&lt;br /&gt;
 &lt;br /&gt;
        // Bestätigung verschicken&lt;br /&gt;
        if (@mail( $email, &amp;quot;Die Firma Max Mustermann bedankt sich&amp;quot;, $mailbody, $mailheader ))&lt;br /&gt;
        {&lt;br /&gt;
            // Bestätigung wurde verschickt&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Das ist im Prinzip der selbe Code wie zuvor in der Text Mail. Es werden lediglich einige Kleinigkeiten im Mail Header angepasst, damit der Benutzer auch weiß, wer ihm schreibt und wohin er antworten kann.&lt;br /&gt;
&lt;br /&gt;
Damit sollten die meisten Fragen zum Thema &amp;quot;Wie versendet man eine Email mit PHP&amp;quot; geklärt sein. Wer Fragen oder Anregungen hat, kann sie gerne in diesem Thread stellen.&lt;/div&gt;</summary>
		<author><name>85.216.68.159</name></author>
	</entry>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=PHP_-_E-Mail_versenden&amp;diff=21364</id>
		<title>PHP - E-Mail versenden</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=PHP_-_E-Mail_versenden&amp;diff=21364"/>
		<updated>2016-01-29T12:29:35Z</updated>

		<summary type="html">&lt;p&gt;85.216.68.159: /* Funktionierendes Beispiel */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
 http://www.a2hosting.com/kb/developer-corner/php/using-php-to-send-e-mail-messages#Method-1.3A-Using-the-mail-function&lt;br /&gt;
 http://www.phpbuddy.eu/emails-mit-php-versenden.html?start=4&lt;br /&gt;
 http://de.wikipedia.org/wiki/Header_(E-Mail)#Beispielmail&lt;br /&gt;
 http://www.schlayer.org/Spamassasin-Hits-deutsche-Uebersetzung.html&lt;br /&gt;
 &lt;br /&gt;
=== Probleme mit Spamfiltern und neueren PHP Versionen vermeiden ===&lt;br /&gt;
==== Spamfilter mit -f Parameter überzeugen ====&lt;br /&gt;
Oft ist es notwendig den -f Parameter zu verwenden um Spamfiltern zu vermitteln, daß es sich nicht um einen Spamversand handelt.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$addParams = &amp;#039;-fnoreply@&amp;#039;.$_SERVER[&amp;#039;SERVER_NAME&amp;#039;];&lt;br /&gt;
$success = mail($to, $subject, $body, $headers,$addParams);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Richtige Header ====&lt;br /&gt;
Bei Problemen mit der Spamerkennung. Hinweise bieten die Codes von Spamassasin&lt;br /&gt;
&lt;br /&gt;
 Link: http://www.schlayer.org/Spamassasin-Hits-deutsche-Uebersetzung.html&lt;br /&gt;
&lt;br /&gt;
 MESSAGE              BEDEUTUNG&lt;br /&gt;
 FH_FROMEML_NOTLD     From Adresse hat keine gültige Top Level Domain (oder fehlt)&lt;br /&gt;
 INVALID_MSGID        Aufbau: &amp;lt;random characters@fqdn-of-sending-host&amp;gt; z.B. &lt;br /&gt;
 RP_MATCHES_RCVD&lt;br /&gt;
 URI_HEX&lt;br /&gt;
&lt;br /&gt;
==== Funktionierendes Beispiel====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$fqdn_hostname = $_SERVER[&amp;#039;SERVER_NAME&amp;#039;];&lt;br /&gt;
$mid = &amp;quot;&amp;lt;&amp;quot; . sha1(microtime()) . &amp;quot;@&amp;quot; . $fqdn_hostname . &amp;quot;&amp;gt;&amp;quot;;&lt;br /&gt;
$from = &amp;#039;&amp;quot;Narda Safety Test Solutions&amp;quot; &amp;lt;noreply@&amp;#039;.$_SERVER[&amp;#039;SERVER_NAME&amp;#039;].&amp;#039;&amp;gt;&amp;#039;;&lt;br /&gt;
$admin_mail = &amp;#039;&amp;lt;schlegel@geo-bit.de&amp;gt;&amp;#039;;&lt;br /&gt;
$replyto_mail = &amp;#039;service.narda-de@l-3com.com&amp;#039;;&lt;br /&gt;
$to = $_POST[e_brief];&lt;br /&gt;
$subject=&amp;quot;NARDA-STS / Request for RMA-Number&amp;quot;;&lt;br /&gt;
$headers .= &amp;#039;Reply-To: &amp;#039;.$replyto_mail.&amp;quot;\r\n&amp;quot;;&lt;br /&gt;
//$headers .= &amp;quot;Return-Path: noreply@&amp;quot; .$_SERVER[&amp;#039;SERVER_NAME&amp;#039;]. &amp;quot;\r\n&amp;quot;;&lt;br /&gt;
//$headers .= &amp;quot;Return-Path: &amp;quot; .$replyto_mail. &amp;quot;\r\n&amp;quot;;&lt;br /&gt;
$headers .= &amp;#039;X-Mailer: PHP/&amp;#039;.phpversion().&amp;quot;\r\n&amp;quot;;&lt;br /&gt;
$headers .= &amp;#039;From: &amp;#039;.$from.&amp;#039;\r\n&amp;#039;;&lt;br /&gt;
//$headers .= &amp;#039;Cc:&amp;#039;.$narda_mail.&amp;quot;\n&amp;quot;;&lt;br /&gt;
$headers .= &amp;#039;Bcc:&amp;#039;.$admin_mail.&amp;quot;\n&amp;quot;;&lt;br /&gt;
$headers .= &amp;quot;MIME-Version: 1.0\r\n&amp;quot;;&lt;br /&gt;
$headers .= &amp;quot;Content-type: text/plain; charset=iso-8859-1\r\n&amp;quot;;&lt;br /&gt;
$headers .= &amp;quot;Content-Transfer-Encoding: 7bit\r\n&amp;quot;;&lt;br /&gt;
$headers .= &amp;quot;Message-ID: &amp;quot; .$mid. &amp;quot;\r\n\r\n&amp;quot;;&lt;br /&gt;
$addParams = &amp;#039;-fnoreply@&amp;#039;.$_SERVER[&amp;#039;SERVER_NAME&amp;#039;];&lt;br /&gt;
$body = &amp;quot;Dear Mrs./Mr. $_POST[first_name] $_POST[last_name],\r\n&amp;quot;;&lt;br /&gt;
$body .= &amp;quot;your email-adress has been successfully confirmed. \r\n&amp;quot;;&lt;br /&gt;
$body .= &amp;quot;You will find the form for filling in the data of your device here:\r\n\r\n&amp;quot;;&lt;br /&gt;
$body .= $secure_root_url.&amp;quot;/$ziel_ordner/RMA/rma_reCall.php?req_num=$req_number&amp;quot;;&lt;br /&gt;
$state=mail($to, $subject, $body, $headers, $addParams);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Body oder Header ====&lt;br /&gt;
Was gehört in der Mailfunktion von php in den Header was in den Body. Es gibt vor allem bei Mails mit Attachments schnell Probleme wegen Zuvielen Zeilenumbrüchen, wenn man etwas falsch macht. Hier ein Ausschnitt der funktioniert:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$to = &amp;#039;Schlegel &amp;lt;schlegel@geo-bit.de&amp;gt;&amp;#039;;&lt;br /&gt;
$mailfrom = $to = &amp;#039;Stephan &amp;lt;stephanschlegel@irgendwo.de&amp;gt;&amp;#039;;&lt;br /&gt;
$replyto = &amp;#039;schlegel@geo-bit.de&amp;#039;;&lt;br /&gt;
$headers = &amp;#039;&amp;#039;;&lt;br /&gt;
$body = &amp;quot;mein E-Mail Text&amp;quot;;&lt;br /&gt;
$subject = &amp;quot;mein Betreff&amp;quot;;&lt;br /&gt;
$headers .= &amp;#039;Reply-To: &amp;#039;.$replyto.&amp;quot;\r\n&amp;quot;;&lt;br /&gt;
//$headers .= &amp;quot;Return-Path: noreply@&amp;quot; .$_SERVER[&amp;#039;SERVER_NAME&amp;#039;]. &amp;quot;\r\n&amp;quot;;&lt;br /&gt;
$headers .= &amp;quot;Return-Path: &amp;quot; .$replyto. &amp;quot;\r\n&amp;quot;;&lt;br /&gt;
$headers .= &amp;#039;X-Mailer: PHP/&amp;#039;.phpversion().&amp;quot;\r\n&amp;quot;;&lt;br /&gt;
$headers .=&amp;#039;From: &amp;#039;.$mailfrom.&amp;quot;\r\n&amp;quot;;&lt;br /&gt;
$headers .= &amp;quot;MIME-Version: 1.0\r\n&amp;quot;;&lt;br /&gt;
if($has_upload){&lt;br /&gt;
	$headers .= &amp;quot;Content-Type: multipart/mixed; boundary=\&amp;quot;&amp;quot;.$mid.&amp;quot;\&amp;quot;\r\n\r\n&amp;quot;;&lt;br /&gt;
	//$message .= &amp;quot;This is a multi-part message in MIME format.\r\n&amp;quot;;&lt;br /&gt;
	$message .= &amp;quot;--&amp;quot;.$mid.&amp;quot;\r\n&amp;quot;;&lt;br /&gt;
	//attachment part&lt;br /&gt;
	$content_type= getMimeType($tmp_path);&lt;br /&gt;
	$message .= &amp;quot;Content-Type: &amp;quot;.$content_type.&amp;quot;; name=\&amp;quot;&amp;quot;.$filename.&amp;quot;\&amp;quot;\r\n&amp;quot;;&lt;br /&gt;
	$message .= &amp;quot;Content-Transfer-Encoding: base64\r\n&amp;quot;;&lt;br /&gt;
	$message .= &amp;quot;Content-Disposition: attachment; filename=\&amp;quot;&amp;quot;.$filename.&amp;quot;\&amp;quot;\r\n\r\n&amp;quot;;&lt;br /&gt;
	$message .= $attachment.&amp;quot;\r\n\r\n&amp;quot;;&lt;br /&gt;
	$message .= &amp;quot;--&amp;quot;.$mid.&amp;quot;\r\n&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
// Text part&lt;br /&gt;
$message .= &amp;quot;Content-Type: text/plain; charset=UTF-8\r\n&amp;quot;;	&lt;br /&gt;
$message .= &amp;quot;Content-Transfer-Encoding: 8bit\r\n\r\n&amp;quot;;	&lt;br /&gt;
$message .= $body.&amp;quot;\r\n\r\n&amp;quot;;&lt;br /&gt;
if($has_upload){&lt;br /&gt;
	$message .= &amp;quot;--&amp;quot;.$mid.&amp;quot;\r\n&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
$addParams = &amp;#039;-fnoreply@&amp;#039;.$_SERVER[&amp;#039;SERVER_NAME&amp;#039;];&lt;br /&gt;
$success = mail($to, $subject,$message, $headers, $addParams);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gmx Header ===&lt;br /&gt;
Bei GMX können Kleinigkeiten dazu führen daß die Mail als Spam eingestuft wird. Wichtig beim Absender z.B. das folgende Format:&lt;br /&gt;
 From: &amp;quot;Geocaching&amp;quot; &amp;lt;noreply@geocaching.com&amp;gt;&lt;br /&gt;
 PHP-Beispiel:&lt;br /&gt;
 $headers .=&amp;#039;From: &amp;quot;Narda&amp;quot; &amp;lt;&amp;#039;.$from.&amp;quot;&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
=== Testmail ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   $template = &amp;quot;Dies ist ein Test&amp;quot;;&lt;br /&gt;
   $empfaenger = &amp;quot;schlegel@geo-bit.de&amp;quot;;&lt;br /&gt;
   // Trenner für den Anhang&lt;br /&gt;
   $trenner = md5( time() );&lt;br /&gt;
&lt;br /&gt;
   // Mail Header erstellen&lt;br /&gt;
   $mailheader = &amp;#039;&amp;#039;;&lt;br /&gt;
   $mailheader .= &amp;quot;Reply-To: Schlegel&amp;lt;schlegel@geo-bit.de&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
   $mailheader .= &amp;quot;Return-Path: noreply@&amp;quot; .$_SERVER[&amp;#039;SERVER_NAME&amp;#039;]. &amp;quot;\r\n&amp;quot;;&lt;br /&gt;
   $mailheader .= &amp;quot;Message-ID: &amp;lt;&amp;quot; .time(). &amp;quot; noreply@&amp;quot; .$_SERVER[&amp;#039;SERVER_NAME&amp;#039;]. &amp;quot;&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
   $mailheader .= &amp;quot;X-Mailer: PHP v&amp;quot; .phpversion(). &amp;quot;\r\n&amp;quot;;&lt;br /&gt;
   $mailheader .= &amp;quot;From: Keine Antwort&amp;lt;noreply@&amp;quot; .$_SERVER[&amp;#039;SERVER_NAME&amp;#039;]. &amp;quot;&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
   $mailheader .= &amp;quot;MIME-Version: 1.0\r\n&amp;quot;;&lt;br /&gt;
   $mailheader .= &amp;quot;Content-Type: multipart/mixed;\r\n&amp;quot;;&lt;br /&gt;
   $mailheader .= &amp;quot; boundary = &amp;quot; .$trenner;&lt;br /&gt;
   $mailheader .= &amp;quot;\r\n\r\n&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
   // Mailbody vorbereiten&lt;br /&gt;
   $mailbody  = &amp;quot;This is a multi-part message in MIME format\r\n&amp;quot;;&lt;br /&gt;
   $mailbody .= &amp;quot;--&amp;quot; .$trenner. &amp;quot;\r\n&amp;quot;;&lt;br /&gt;
   $mailbody .= &amp;quot;Content-Type: text/html; charset=UTF-8\r\n&amp;quot;;&lt;br /&gt;
   $mailbody .= &amp;quot;Content-Transfer-Encoding: 8bit\r\n\r\n&amp;quot;;&lt;br /&gt;
   $mailbody .= $template. &amp;quot;\r\n\r\n&amp;quot;;&lt;br /&gt;
   echo($mailheader);&lt;br /&gt;
   echo($mailbody);&lt;br /&gt;
   // Email versenden&lt;br /&gt;
   if (mail( $empfaenger, htmlspecialchars( $betreff ), $mailbody, $mailheader ))&lt;br /&gt;
   {&lt;br /&gt;
       // Bei erfolgreichem Versand Danke-Seite anzeigen&lt;br /&gt;
       echo &amp;#039;Danke, die Email wurde verschickt!&amp;#039;;&lt;br /&gt;
   }else{&lt;br /&gt;
	echo &amp;#039;Fehler beim Versand&amp;#039;;&lt;br /&gt;
   }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== Einfache Text E-Mail mit Template ===&lt;br /&gt;
Einfache Text Email&lt;br /&gt;
&lt;br /&gt;
Zuerst das Listing unserer Template Datei mailbody.txt&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Soeben ist eine Nachricht von ###NAME### eingetroffen.&lt;br /&gt;
Als Antwortadresse wurde ###EMAIL### angegeben.&lt;br /&gt;
Die Nachricht die gesendet wurde:&lt;br /&gt;
###NACHRICHT###&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wie man unschwer erkennt, ist das ganz normaler und schlichter Text. Lediglich die Platzhalter darin fallen auf. Diese Platzhalter korrespondieren in unserem Script mit den Benutzereingaben und werden in unserem Script durch diese ersetzt.&lt;br /&gt;
Dadurch das wir den Text, der später per Email an uns geschickt wird, in einer eigenen Datei ablegen, können wir den Text schnell und flexibel beliebig verändern und erweitern. Da es sich hierbei um einen Mailer handelt der nur reinen Text verschickt, müssen wir auf jegliche Art von Formatierungen verzichten.&lt;br /&gt;
&lt;br /&gt;
Bisher haben wir das HTML-Formular, die Funktionen und das Mail Template kennengelernt, fehlt nur noch das Hauptscript, dass wir uns gleich mal vorknöpfen.&lt;br /&gt;
&lt;br /&gt;
Listing der Datei mail.php&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
 &lt;br /&gt;
header( &amp;#039;Content-Type: text/html; charset=utf-8&amp;#039; );&lt;br /&gt;
 &lt;br /&gt;
// Empfänger Email&lt;br /&gt;
$empfaenger = &amp;#039;max.mustermann@domain.tld&amp;#039;;&lt;br /&gt;
 &lt;br /&gt;
// Prüfen ob das Formular abgeschickt wurde&lt;br /&gt;
if (isset($_POST[&amp;#039;senden&amp;#039;]))&lt;br /&gt;
{&lt;br /&gt;
    // Funktionen einbinden&lt;br /&gt;
    include( &amp;#039;funktionen.inc.php&amp;#039; );&lt;br /&gt;
 &lt;br /&gt;
    // Benutzereingaben bereinigen und auf Injection prüfen&lt;br /&gt;
    cleanInput();&lt;br /&gt;
 &lt;br /&gt;
    // Name prüfen&lt;br /&gt;
    $name = checkName( $_POST[&amp;#039;name&amp;#039;] );&lt;br /&gt;
    // Email prüfen&lt;br /&gt;
    $email = checkEmail( $_POST[&amp;#039;email&amp;#039;] );&lt;br /&gt;
    // Betreff und Nachricht prüfen&lt;br /&gt;
    if ((strlen( $_POST[&amp;#039;betreff&amp;#039;] ) &amp;lt; 5) || (strlen( $_POST[&amp;#039;nachricht&amp;#039;] ) &amp;lt; 5))&lt;br /&gt;
    {&lt;br /&gt;
        die( &amp;#039;Bitte füllen Sie alle Felder aus!&amp;#039; );&lt;br /&gt;
    }&lt;br /&gt;
    else&lt;br /&gt;
    {&lt;br /&gt;
        $betreff   = $_POST[&amp;#039;betreff&amp;#039;];&lt;br /&gt;
        $nachricht = $_POST[&amp;#039;nachricht&amp;#039;];&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    // --------------------------------------------------------------------------------&lt;br /&gt;
    // Wurde das Script bisher nicht abgebrochen, wurde das Formular korrekt ausgefüllt&lt;br /&gt;
    // --------------------------------------------------------------------------------&lt;br /&gt;
 &lt;br /&gt;
    // Template mit dem Mailbody laden und für den Versand vorbereiten&lt;br /&gt;
    $mailbody = file_get_contents( &amp;#039;mailbody.txt&amp;#039; );&lt;br /&gt;
    // Platzhalter mit den Benutzereingaben ersetzen&lt;br /&gt;
    $mailbody = str_replace( &amp;#039;###NAME###&amp;#039;, htmlspecialchars( $name ), $mailbody );&lt;br /&gt;
    $mailbody = str_replace( &amp;#039;###EMAIL###&amp;#039;, $email, $mailbody );&lt;br /&gt;
    $mailbody = str_replace( &amp;#039;###NACHRICHT###&amp;#039;, htmlspecialchars( $nachricht ), $mailbody );&lt;br /&gt;
 &lt;br /&gt;
    // Mail Header erstellen&lt;br /&gt;
    $mailheader  = &amp;quot;From: PHP Email Tutorial&amp;lt;noreply@&amp;quot; .$_SERVER[&amp;#039;SERVER_NAME&amp;#039;]. &amp;quot;&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
    $mailheader .= &amp;quot;Reply-To: &amp;quot; .$name. &amp;quot;&amp;lt;&amp;quot; .$email. &amp;quot;&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
    $mailheader .= &amp;quot;Return-Path: noreply@&amp;quot; .$_SERVER[&amp;#039;SERVER_NAME&amp;#039;]. &amp;quot;\r\n&amp;quot;;&lt;br /&gt;
    $mailheader .= &amp;quot;MIME-Version: 1.0\r\n&amp;quot;;&lt;br /&gt;
    $mailheader .= &amp;quot;Content-Type: text/plain; charset=UTF-8\r\n&amp;quot;;&lt;br /&gt;
    $mailheader .= &amp;quot;Content-Transfer-Encoding: 7bit\r\n&amp;quot;;&lt;br /&gt;
    $mailheader .= &amp;quot;Message-ID: &amp;lt;&amp;quot; .time(). &amp;quot; noreply@&amp;quot; .$_SERVER[&amp;#039;SERVER_NAME&amp;#039;]. &amp;quot;&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
    $mailheader .= &amp;quot;X-Mailer: PHP v&amp;quot; .phpversion(). &amp;quot;\r\n\r\n&amp;quot;;&lt;br /&gt;
 &lt;br /&gt;
    // Email versenden&lt;br /&gt;
    if (@mail( $empfaenger, htmlspecialchars( $betreff ), $mailbody, $mailheader ))&lt;br /&gt;
    {&lt;br /&gt;
        // Bei erfolgreichem Versand Danke-Seite anzeigen&lt;br /&gt;
        echo &amp;#039;Danke, die Email wurde verschickt!&amp;#039;;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Das sieht im ersten Moment mehr und wilde&lt;br /&gt;
r aus, als es das eigentlich ist. Der obere Teil ist schnell erklärt. Zunächst setzen wir die Email des Empfängers, der idR wir selbst sind. Dann wird geprüft ob das Formular überhaupt abgeschickt wurde und wenn dem so ist, binden wir die benötigten Funktionen ein und überprüfen die Benutzereingaben.&lt;br /&gt;
&lt;br /&gt;
Mit den Zeilen ...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    // Template mit dem Mailbody laden und für den Versand vorbereiten&lt;br /&gt;
    $mailbody = file_get_contents( &amp;#039;mailbody.txt&amp;#039; );&lt;br /&gt;
    // Platzhalter mit den Benutzereingaben ersetzen&lt;br /&gt;
    $mailbody = str_replace( &amp;#039;###NAME###&amp;#039;, htmlspecialchars( $name ), $mailbody );&lt;br /&gt;
    $mailbody = str_replace( &amp;#039;###EMAIL###&amp;#039;, $email, $mailbody );&lt;br /&gt;
    $mailbody = str_replace( &amp;#039;###NACHRICHT###&amp;#039;, htmlspecialchars( $nachricht ), $mailbody );&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
... laden wir das Mail Template (file_get_contents) und ersetzen mit einfachen str_replace Funktionen die Platzhalter. Auch wenn wir bereits auf mögliche Injections geprüft haben, entschärfen wir dennoch die Eingaben mit htmlspecialchars, damit uns niemand etwas unterschiebt. Bei der Email ist das nicht nötig, da diese sonst nicht durch den Filter gekommen wäre.&lt;br /&gt;
&lt;br /&gt;
Jetzt kommen wir zu dem wichtigsten Teil, der ein erfolgreiches Versenden überhaupt erst möglich macht: dem Mail Header.&lt;br /&gt;
&lt;br /&gt;
Der Mail Header ist der Kopf der Email, der alle relevanten und wichtigen Informationen über unsere Email enthält. Sehr sehr häufig sieht man in Scripts und Tutorials, dass hier lediglich das &amp;quot;From:&amp;quot; angegeben ist. Wenn nur diese Information angegeben ist, bleibt die Mail sehr häufig in einem Spamfilter hängen. Kein Mensch würde auf die Idee kommen einen echten Brief zu verschicken und als Beschreibung auf dem Brief nur einen Name angeben, ohne komplette Anschrift und Absenderadresse. Wieso dann bei einer Email?!&lt;br /&gt;
&lt;br /&gt;
Schauen wir uns also an wie ein Header aussieht, der die wichtigsten Angaben enthält:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    $mailheader  = &amp;quot;From: PHP Email Tutorial&amp;lt;noreply@&amp;quot; .$_SERVER[&amp;#039;SERVER_NAME&amp;#039;]. &amp;quot;&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
    $mailheader .= &amp;quot;Reply-To: &amp;quot; .$name. &amp;quot;&amp;lt;&amp;quot; .$email. &amp;quot;&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
    $mailheader .= &amp;quot;Return-Path: noreply@&amp;quot; .$_SERVER[&amp;#039;SERVER_NAME&amp;#039;]. &amp;quot;\r\n&amp;quot;;&lt;br /&gt;
    $mailheader .= &amp;quot;MIME-Version: 1.0\r\n&amp;quot;;&lt;br /&gt;
    $mailheader .= &amp;quot;Content-Type: text/plain; charset=UTF-8\r\n&amp;quot;;&lt;br /&gt;
    $mailheader .= &amp;quot;Content-Transfer-Encoding: 7bit\r\n&amp;quot;;&lt;br /&gt;
    $mailheader .= &amp;quot;Message-ID: &amp;lt;&amp;quot; .time(). &amp;quot; noreply@&amp;quot; .$_SERVER[&amp;#039;SERVER_NAME&amp;#039;]. &amp;quot;&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
    $mailheader .= &amp;quot;X-Mailer: PHP v&amp;quot; .phpversion(). &amp;quot;\r\n\r\n&amp;quot;;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Steuerungzeichen &amp;quot;\r\n&amp;quot; entsprechen einen Wagenrücklauf und Zeilenvorschub oder anders ausgedrückt, ein Zeilenumbruch. Diese Steuerungzeichen sind betriebssystemabhängig und müssen ggfs. angepasst werden. Auf Linux würde man z.B. nur &amp;quot;\n&amp;quot; verwenden. Schauen wir uns nun die anderen angaben an:&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;From&amp;#039;&amp;#039;&amp;#039; - Das ist die Absendeadresse und der dazugehörige Name. Es ist üblich diesen in der Form Name anzugeben. Das ist die absolute Minimumangabe für inen Mailheader. Fehlt das From, wird der Versand der Mail fehlschlagen.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Reply-To&amp;#039;&amp;#039;&amp;#039; - Das Format kann entweder nur eine Email Adresse sein, oder man wählt das Format wir bei From. Dieses Feld ist die Antwortadresse an die die Mail geschickt wird, wenn wir im Mail Client auf antworten klicken.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Return-Path&amp;#039;&amp;#039;&amp;#039; - Konnte die Mail nicht zugestellt werden, wird dies an diese Adresse gemeldet.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;MIME-Version&amp;#039;&amp;#039;&amp;#039; - Entspricht dem MIME Typ der Mail.&lt;br /&gt;
    &lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Content-Type&amp;#039;&amp;#039;&amp;#039; - Das ist die Information die dem Mail Client mitteilt, um welche Art Mail es sich handelt und welcher Zeichensatz zur Darstellung benutzt werden soll.&lt;br /&gt;
    &lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Content-Transfer-Encoding&amp;#039;&amp;#039;&amp;#039; - Dies beschreibt die Art der Übertragung und wie sowohl Mailserver, als auch Email Clients diese Mail interpretieren. 7bit ist die kleinste Form, die maximal mögliche Kompatibilität ermöglicht. Beim 7bit ASCII Zeichensatz können die ersten 128 zeichen der ASCII Tabelle dargestellt werden. Zeichen wie deutsche Umlaute sind darin nicht vorgesehen. Bei der 8bit Übertragung können bis zu 256 zeichen dargestellt werden. Ältere Mailerver, so liest man, verstehen nur 7bit und verwerfen Anfragen die mit 8bit übertragen werden sollen. Anders ausgedrückt, es kann passieren das die Mail nicht ankommt. Ich persönlich hatte damit allerdings noch nie Probleme und die 7bit &amp;quot;Zwangsangabe&amp;quot; scheint veraltet zu sein.&lt;br /&gt;
    &lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Message-ID&amp;#039;&amp;#039;&amp;#039; - Die Message ID ist einmalig, bzw. sollte es sein, wodurch die Mail eindeutig zugeordnet werden kann.&lt;br /&gt;
    &lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;X-Mailer&amp;#039;&amp;#039;&amp;#039; - Beschreibt den Client der die Mail versendet hat. In unserem Fall geben wir die PHP Version an, damit Mailserver auf der Route wissen, dass diese Mail mit PHP verschickt wurde.&lt;br /&gt;
&lt;br /&gt;
Es gibt noch weitere Felder und Varianten, die uns aber im moment nicht kümmern. Im Abschnitt Mail mit Anhang werden wir noch einen etwas anderen Header kennen lernen.&lt;br /&gt;
Speziell die letzten beiden Angaben (Message ID und X_Mailer) im Header oben sind sehr wichtige Informationen. Fehlen diese Angaben, ist die Wahrscheinlichkeit sehr hoch, dass die Mail niemals beim Empfänger ankommen wird, weil die Mail irgendwo unterwegs in einem Spamfilter hängen bleibt und nicht weitergeleitet wird!&lt;br /&gt;
&lt;br /&gt;
Falls also eine Mail nicht ankommt, liegt das in den aller meisten Fällen entweder am Transfer-Encoding (7bit oder 8bit) oder an fehlenden Absendeangaben!&lt;br /&gt;
&lt;br /&gt;
Der Rest des Scripts ist sehr einfach, weil hier einfach nur noch die Mail verschickt wird.&lt;br /&gt;
&lt;br /&gt;
    if (@mail( $empfaenger, htmlspecialchars( $betreff ), $mailbody, $mailheader ))&lt;br /&gt;
    {&lt;br /&gt;
        // Bei erfolgreichem Versand Danke-Seite anzeigen&lt;br /&gt;
        echo &amp;#039;Danke, die Email wurde verschickt!&amp;#039;;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
Die mail-Funktion kennt noch einen 5. Parameter auf den ich jetzt nicht eingehen werde, weil dieser nur in den seltensten Fällen unterstützt wird. Wer mehr darüber erfahren möchte kann sich darüber in der Online-Doku informieren. Die mail-Funktion selbst liefert entweder TRUE oder FALSE zurück. Bei einem FALSE konnte die Mail nicht für den Versand übergeben werden und wir können entsprechend darauf reagieren. Im Falle von TRUE heisst das zwar das die Mail für den Versand angenommen wurde, aber es ist nicht prüfbar ob die Mail auch tatsächlich beim Empfänger ankam! Einige Gründe dafür stehen weiter oben. Wurde die Mail für den Versand akzeptiert, können wir darauf angemessen reagieren, indem wir den Besucher zu einer Danke-Seite weiterleiten oder, was weiter unter gezeigt wird, dem Benutzer eine Empfangsbestätigung, respektive Kopie der Mail an seine Adresse schicken.&lt;br /&gt;
&lt;br /&gt;
Soweit so gut. Dieser Abschnitt fiel etwas länger aus, weil ich die prinzipielle Funktionsweise und den Header beschrieben habe. Die nachfolgenden Beispiele sind über große Strecken identisch, deswegen spare ich mir dort die Erklärungen und gehe nur auf die abweichenden Passagen ein.&lt;br /&gt;
&lt;br /&gt;
=== E-Mail mit CSS Formatierung ===&lt;br /&gt;
&lt;br /&gt;
Eine Email im HTML Format zu senden ist im Grunde genommen nichts anderes, als eine einzelne Webseite per Email zu verschicken. Wir haben also mehr oder weniger freie Hand was die Gestaltung angeht, solange wir uns an die HTML und CSS Richtlinien halten. Das wird sofort ersichtlicht, wenn man das Template für die Email sieht.&lt;br /&gt;
&lt;br /&gt;
Listing der Datei mailbody.txt&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE html PUBLIC &amp;quot;-//W3C//DTD XHTML 1.0 Transitional//EN&amp;quot; &amp;quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;html xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot; xml:lang=&amp;quot;de&amp;quot; lang=&amp;quot;de&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
&amp;lt;meta http-equiv=&amp;quot;Content-Type&amp;quot; content=&amp;quot;text/html; charset=utf-8&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;title&amp;gt;Email als HTML&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;style type=&amp;quot;text/css&amp;quot;&amp;gt;&lt;br /&gt;
body { font: normal 12px Verdana, Arial, Helvetica, sans-serif; }&lt;br /&gt;
a { color: blue; text-decoration: none; }&lt;br /&gt;
h2 { font-size: 16px; font-weight: bold; }&lt;br /&gt;
.gruen { color: green; }&lt;br /&gt;
&amp;lt;/style&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt;Soeben ist eine Nachricht von &amp;lt;span class=&amp;quot;gruen&amp;quot;&amp;gt;###NAME###&amp;lt;/span&amp;gt; eingetroffen.&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Als Antwortadresse wurde &amp;lt;a href=&amp;quot;mailto:###EMAIL###&amp;quot;&amp;gt;###EMAIL###&amp;lt;/a&amp;gt; angegeben.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Die Nachricht die gesendet wurde lautet:&amp;lt;br /&amp;gt;&lt;br /&gt;
###NACHRICHT###&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Template besteht aus einer normalen HTML Datei mit etwas CSS. Auch hier treffen wir wieder unsere Platzhalter, die durch die Benutzereingaben ersetzt werden.&lt;br /&gt;
&lt;br /&gt;
Die Datei funktionen.inc.php ist identisch mit wie beim vorherigen Beispiel. Auch die mail.php weicht nur minimal vom letzten Beispiel ab - das aber mit großer Wirkung!&lt;br /&gt;
Die erste Abweichung findet in der Zeile zum ersetzen des Platzhalters für die Nachricht statt.&lt;br /&gt;
&lt;br /&gt;
 $mailbody = str_replace( &amp;#039;###NACHRICHT###&amp;#039;, nl2br( htmlspecialchars( $nachricht ) ), $mailbody );&lt;br /&gt;
&lt;br /&gt;
Ergänzt wurde hier die Funktion nl2br. Diese Funktion bewirkt, dass das Steuerungzeichen für einen Zeilenumbruch (\n) in ein HTML-konformes Break (&amp;lt;br /&amp;gt;) umgewandelt wird. Ohne diese Funktion hätten wir bei der Ausgabe nur eine laaaange Zeile Text ohne neue Absätze und Umbrüche.&lt;br /&gt;
&lt;br /&gt;
Die nächsten beiden Veränderungen finden im Mail Header statt. Da wird nun ja keinen reinen Text, sondern HTML verschicken, muß natürlich der Content-Type angepasst werden. Ebenso ändern wir das Transfer-Encoding auf 8bit. Hier die beiden geänderten Zeilen:&lt;br /&gt;
&lt;br /&gt;
    $mailheader .= &amp;quot;Content-Type: text/html; charset=UTF-8\r\n&amp;quot;;&lt;br /&gt;
    $mailheader .= &amp;quot;Content-Transfer-Encoding: 8bit\r\n&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
That&amp;#039;s it!&lt;br /&gt;
Diese kleinen Veränderungen haben eine solch große Auswirkung auf die Art der Darstellung!&lt;br /&gt;
&lt;br /&gt;
Das Ergebnis im Mail Client:&lt;br /&gt;
&lt;br /&gt;
(Deutlich zu sehen das die H2-Überschrift sich absetzt und auch der Name durch das CSS farblich hervorgehoben wird)&lt;br /&gt;
&lt;br /&gt;
Vermutlich stand jeder angehende Programmierer schon mal an dieser Stelle. Voller Stolz blickt man in sein Postfach, wo die erste Mail vom eigenen Formmailer eingetroffen ist. Dann denkt man sich: &amp;quot;Das war ja einfach, mit nur so wenigen Zeilen Code so ein Ergebnis zu erzielen. Wie schwer kann es da schon sein auch eine Datei mitzuschicken?!&amp;quot;.&lt;br /&gt;
Angesichts der oben gezeigten Beispiele, und wie minimal der Unterschied zwischen Text Mail und HTML Mail ist, neigt man dazu zu denken, dass dies mit einem Dateianhang ebenso einfach ist.&lt;br /&gt;
&lt;br /&gt;
Tja, leider ist dem nicht so. Das senden von Dateianhänge ist erheblich aufwändiger als das senden einer Text/HTML Mail. Das Formular ist abweichend, der Mail Header ist abweichend, der Mail Body muß in einzelne Teilbereiche getrennt werden, Dateianhänge müssen Richtlinien beachten, was die Zeilenlänge und die Art der Zeichen innerhalb der Mail angeht.&lt;br /&gt;
Glücklicherweise hilft uns PHP bei den meisten Sachen und deshalb werden wir auch dieses Problem meistern. :)&lt;br /&gt;
&lt;br /&gt;
=== E-Mail mit CSS und Anhang ===&lt;br /&gt;
Siehe auch: [[PHP - Upload Formular]]&lt;br /&gt;
Todo Quelle siehe oben (2012-03)&lt;br /&gt;
&lt;br /&gt;
HTML Email mit CSS Formatierung und Dateianhang&lt;br /&gt;
&lt;br /&gt;
Da wir eine Datei mit der Mail verschicken möchten, muß das Formular natürlich dahingehend erweitert werden, dass ein Upload auch möglich ist. In unserem Beispiel möchten wir eine JPG datei anhängen und erlauben auch nur das hochladen dieses Bildtyps.&lt;br /&gt;
Die Template Datei ist identisch zum vorherigen HTML Beispiel. In der Datei funktionen.inc.php fügen wir aber eine weitere Funktion hinzu, die für uns prüft, ob eine Datei hochgeladen wurde und ob es sich dabei um eine JPG Datei handelt.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
function checkFile()&lt;br /&gt;
{&lt;br /&gt;
    if ($_FILES[&amp;#039;datei&amp;#039;][&amp;#039;error&amp;#039;] == 0 &amp;amp;&amp;amp;&lt;br /&gt;
        $_FILES[&amp;#039;datei&amp;#039;][&amp;#039;type&amp;#039;] == &amp;#039;image/jpeg&amp;#039;)&lt;br /&gt;
    {&lt;br /&gt;
        return $_FILES[&amp;#039;datei&amp;#039;][&amp;#039;name&amp;#039;];&lt;br /&gt;
    }&lt;br /&gt;
    else&lt;br /&gt;
    {&lt;br /&gt;
        die( &amp;#039;Bitte eine gültige JPG Datei anhängen!&amp;#039; );&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In der Datei mail.php wird sich nun einiges ändern. Zunächst erweitern wir die einleitende Abfrage dahingehend, dass wir feststellen ob auch eine Datei angehängt wurde ...&lt;br /&gt;
&lt;br /&gt;
 if (isset($_POST[&amp;#039;senden&amp;#039;]) &amp;amp;&amp;amp; $_FILES[&amp;#039;datei&amp;#039;][&amp;#039;size&amp;#039;] &amp;gt; 0)&lt;br /&gt;
&lt;br /&gt;
... und fügen ebenso den Aufruf für die neue Funktion hinzu, die prüft ob ein JPG hochgeladen wurde:&lt;br /&gt;
&lt;br /&gt;
 $uploadname = checkFile();&lt;br /&gt;
&lt;br /&gt;
Das weitere Listing der Datei mail.php sieht wie folgt aus:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    // Template mit dem Mailbody laden&lt;br /&gt;
    $template = file_get_contents( &amp;#039;mailbody.txt&amp;#039; );&lt;br /&gt;
    // Trenner für den Anhang&lt;br /&gt;
    $trenner = md5( time() );&lt;br /&gt;
 &lt;br /&gt;
    // Platzhalter mit den Benutzereingaben ersetzen&lt;br /&gt;
    $template = str_replace( &amp;#039;###NAME###&amp;#039;, htmlspecialchars( $name ), $template );&lt;br /&gt;
    $template = str_replace( &amp;#039;###EMAIL###&amp;#039;, $email, $template );&lt;br /&gt;
    $template = str_replace( &amp;#039;###NACHRICHT###&amp;#039;, nl2br( htmlspecialchars( $nachricht ) ), $template );&lt;br /&gt;
 &lt;br /&gt;
    // Mail Header erstellen&lt;br /&gt;
    $mailheader .= &amp;quot;Reply-To: &amp;quot; .$name. &amp;quot;&amp;lt;&amp;quot; .$email. &amp;quot;&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
    $mailheader .= &amp;quot;Return-Path: noreply@&amp;quot; .$_SERVER[&amp;#039;SERVER_NAME&amp;#039;]. &amp;quot;\r\n&amp;quot;;&lt;br /&gt;
    $mailheader .= &amp;quot;Message-ID: &amp;lt;&amp;quot; .time(). &amp;quot; noreply@&amp;quot; .$_SERVER[&amp;#039;SERVER_NAME&amp;#039;]. &amp;quot;&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
    $mailheader .= &amp;quot;X-Mailer: PHP v&amp;quot; .phpversion(). &amp;quot;\r\n&amp;quot;;&lt;br /&gt;
    $mailheader .= &amp;quot;From: PHP Email Tutorial&amp;lt;noreply@&amp;quot; .$_SERVER[&amp;#039;SERVER_NAME&amp;#039;]. &amp;quot;&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
    $mailheader .= &amp;quot;MIME-Version: 1.0\r\n&amp;quot;;&lt;br /&gt;
    $mailheader .= &amp;quot;Content-Type: multipart/mixed;\r\n&amp;quot;;&lt;br /&gt;
    $mailheader .= &amp;quot; boundary = &amp;quot; .$trenner;&lt;br /&gt;
    $mailheader .= &amp;quot;\r\n\r\n&amp;quot;;&lt;br /&gt;
 &lt;br /&gt;
    // Mailbody vorbereiten&lt;br /&gt;
    $mailbody  = &amp;quot;This is a multi-part message in MIME format\r\n&amp;quot;;&lt;br /&gt;
    $mailbody .= &amp;quot;--&amp;quot; .$trenner. &amp;quot;\r\n&amp;quot;;&lt;br /&gt;
    $mailbody .= &amp;quot;Content-Type: text/html; charset=UTF-8\r\n&amp;quot;;&lt;br /&gt;
    $mailbody .= &amp;quot;Content-Transfer-Encoding: 8bit\r\n\r\n&amp;quot;;&lt;br /&gt;
    $mailbody .= $template. &amp;quot;\r\n\r\n&amp;quot;;&lt;br /&gt;
 &lt;br /&gt;
    // Anhang anfügen&lt;br /&gt;
    $mailbody .= &amp;quot;--&amp;quot; .$trenner. &amp;quot;\r\n&amp;quot;;&lt;br /&gt;
    $mailbody .= &amp;quot;Content-Type: image/jpeg; name=\&amp;quot;&amp;quot; .$uploadname. &amp;quot;\&amp;quot;\r\n&amp;quot;;&lt;br /&gt;
    $mailbody .= &amp;quot;Content-Transfer-Encoding: base64\r\n&amp;quot;;&lt;br /&gt;
    $mailbody .= &amp;quot;Content-Disposition: attachment; filename=\&amp;quot;&amp;quot; .$uploadname. &amp;quot;\&amp;quot;\r\n\r\n&amp;quot;;&lt;br /&gt;
    $mailbody .= chunk_split( base64_encode( file_get_contents( $_FILES[&amp;#039;datei&amp;#039;][&amp;#039;tmp_name&amp;#039;] ) ) );&lt;br /&gt;
    $mailbody .= &amp;quot;\n&amp;quot;;&lt;br /&gt;
 &lt;br /&gt;
    // Email versenden&lt;br /&gt;
    if (@mail( $empfaenger, htmlspecialchars( $betreff ), $mailbody, $mailheader ))&lt;br /&gt;
    {&lt;br /&gt;
        // Bei erfolgreichem Versand Danke-Seite anzeigen&lt;br /&gt;
        echo &amp;#039;Danke, die Email wurde verschickt!&amp;#039;;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wir sehen auf den ersten Blick, dass dieser Code ganz anders aussieht als das vorherige Beispiel. Gehen wir den Code mal der Reihe nach durch, um etwas Licht in&amp;#039;s Dunkel zu bringen.&lt;br /&gt;
&lt;br /&gt;
Im oberen Bereich erzeugen wir einen eindeutigen String, den wir zum trennen der verschiedenen Teilbereiche der Mail verwenden werden:&lt;br /&gt;
&lt;br /&gt;
 $trenner = md5( time() );&lt;br /&gt;
&lt;br /&gt;
Der erste Teil des Mail Header ist uns bereits bekannt, aber beim Content-Type benötigen wir nun eine andere Angabe.&lt;br /&gt;
&lt;br /&gt;
 $mailheader .= &amp;quot;Content-Type: multipart/mixed;\r\n&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
Dieser Content-Type ähnelt der Angabe &amp;quot;multipart/form-data&amp;quot; in einem HTML Formular, wenn wir dort ebenfalls gemischte Inhalte haben, nämlich Text und Dateien. Damit der Mail Client nun weiß an welchen Stellen im gesendeten Quellcode er Inhalte trennen muß, teilen wir im Header den boundary-String mit.&lt;br /&gt;
&lt;br /&gt;
An dieser Stelle möchte ich noch auf 2 wichtige Dinge hinweisen. Das Leerzeichen vor dem &amp;quot;boundary&amp;quot; im Header ist kein Versehen! Es kann tatsächlich dazu führen das eine Mail nicht korrekt dargestellt wird, wenn dieses Leerzeichen fehlt. Ebenso ist es wichtig, dass die &amp;quot;From&amp;quot;-Angabe unmittelbar vor der &amp;quot;MIME-Version&amp;quot; und dem &amp;quot;Content-Type&amp;quot; steht. Vertauscht man die Reihenfolge der Header Angabe, führt das z.B. bei mir dazu, dass ich im Thunderbird nur eine leere Seite als Mail angezeigt bekomme, obwohl der komplette Mail Inhalt im Quelltext einsehbar ist.&lt;br /&gt;
&lt;br /&gt;
Die nächste Zeile ...&lt;br /&gt;
&lt;br /&gt;
 $mailbody  = &amp;quot;This is a multi-part message in MIME format\r\n&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
... steht vor der Nachricht im Head Bereich in der Email. Sie scheint nicht zwingend erforderlich zu sein, aber Mail Clients fügen diese ebenfalls hinzu, wenn man mit z.B. Thunderbird eine Email verschickt. Ich vermute, dass dies aus Gründen der Kompatibilität zu einigen Mail Server geschieht.&lt;br /&gt;
&lt;br /&gt;
Nun folgt der erste Teil unserer Email, der Text.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    $mailbody .= &amp;quot;--&amp;quot; .$trenner. &amp;quot;\r\n&amp;quot;;&lt;br /&gt;
    $mailbody .= &amp;quot;Content-Type: text/html; charset=UTF-8\r\n&amp;quot;;&lt;br /&gt;
    $mailbody .= &amp;quot;Content-Transfer-Encoding: 8bit\r\n\r\n&amp;quot;;&lt;br /&gt;
    $mailbody .= $template. &amp;quot;\r\n\r\n&amp;quot;;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Durch den Trenner teilen wir dem Mail Client mit, dass zwischen diesem Trenner und dem nächsten Trenner, bzw. dem Ende der Mail, ein Teilabschnitt dieser Email steht. Damit der Client weiß um was es sich bei diesem Abschnitt handelt, teilen wir ihm das mithilfe des &amp;quot;Content-Type&amp;quot; und dem &amp;quot;Transfer-Encoding&amp;quot; mit. Durch die Angabe &amp;quot;text/html&amp;quot; weiß nun der Client, dass alles bis zum nächsten Trennen als HTML dargestellt werden soll.&lt;br /&gt;
&lt;br /&gt;
Der nächste Teilabschnitt der Mail ist unser Bild:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    // Anhang anfügen&lt;br /&gt;
    $mailbody .= &amp;quot;--&amp;quot; .$trenner. &amp;quot;\r\n&amp;quot;;&lt;br /&gt;
    $mailbody .= &amp;quot;Content-Type: image/jpeg; name=\&amp;quot;&amp;quot; .$uploadname. &amp;quot;\&amp;quot;\r\n&amp;quot;;&lt;br /&gt;
    $mailbody .= &amp;quot;Content-Transfer-Encoding: base64\r\n&amp;quot;;&lt;br /&gt;
    $mailbody .= &amp;quot;Content-Disposition: attachment; filename=\&amp;quot;&amp;quot; .$uploadname. &amp;quot;\&amp;quot;\r\n\r\n&amp;quot;;&lt;br /&gt;
    $mailbody .= chunk_split( base64_encode( file_get_contents( $_FILES[&amp;#039;datei&amp;#039;][&amp;#039;tmp_name&amp;#039;] ) ) );&lt;br /&gt;
    $mailbody .= &amp;quot;\n&amp;quot;;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Wieder folgt zunächst der Trenner. Der Client stoppt seine HTML Ausgabe an dieser Position und wird ab diesem Punkt ausgeben, was ihm durch den &amp;quot;Content-Type&amp;quot; und das &amp;quot;Transfer-Encoding&amp;quot; aufgetragen wird. Wir sehen nun, dass wir als Content-Type eine JPG Datei ausgeben möchten. Der Name ergibt sich aus dem Rückgabewert der Funktion, die den Upload zuvor überprüft hat. Als Transfer-Encoding wird &amp;quot;base64&amp;quot; angegeben. Diese Angabe ist überaus wichtig um eine korrekte Übertragung der Daten zu gewährleisten. Mit der Angabe &amp;quot;Content-Disposition: attachment;&amp;quot; legen wir fest, dass der Anhang wirklich an die Mail angehängt wird. Eine andere Möglichkeit wäre hier das Einbetten in den Mailtext, indem man als Content-Disposition ein &amp;quot;inline&amp;quot; angibt. Die nächste Zeile ist ziemlich tricky:&lt;br /&gt;
&lt;br /&gt;
 $mailbody .= chunk_split( base64_encode( file_get_contents( $_FILES[&amp;#039;datei&amp;#039;][&amp;#039;tmp_name&amp;#039;] ) ) );&lt;br /&gt;
&lt;br /&gt;
Arbeiten wir uns mal von Innen nach Außen durch, weil hier mehrere Funktionen verschachtelt sind. Mit file_get_contents wird eine Datei als String eingelesen. Dies ist hier möglich, weil diese Funktion seit PHP 4.3 binary safe ist. Als einzulesender Dateiname nehmen wir hier den Name der temporären datei, die durch den Upload auf dem Server gelandet ist. Diese Datei steht nur zu genau diesem Zeitpunkt zur Verfügung. Sobald das Script beendet wird oder eine andere Seite geladen wird, existiert diese Datei nicht mehr. Möchte man diese Datei erst zu einem späteren Zeitpunkt verarbeiten, muß man diese zunächst mit move_uploaded_file an eine andere Position kopieren.&lt;br /&gt;
Da wir nun die Bilddatei als String eingelesen haben, wird er mit base64_encode umgewandelt, damit die Datei beschädigt wird, falls es nicht möglich ist die Mail als 8bit zu übertragen. Es wird also aus Gründen der Kompatibilität gemacht. Anschließend wird der String mit chunk_split so aufbereitet, dass die Zeilenlänge 76 Zeichen nicht übersteigt.&lt;br /&gt;
&lt;br /&gt;
Das war&amp;#039;s! Die Daten können nun wieder mit der mail-Funktion versendet werden. Sollte man mehr als eine Datei anhängen wollen, kann man den letzten Schritt beliebig oft wiederholen. Erst Trenner setzen, dann Art der Daten und Übertragungsmodus angeben, die Datei anhängen, fertig.&lt;br /&gt;
&lt;br /&gt;
==== Beispiel Funktion (SPAM Proofed)====&lt;br /&gt;
(Aus Narda Accredited Calibration)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
function send_acc_mail($rma_num,$arrForm,$arrPartner){&lt;br /&gt;
	global $user_db;&lt;br /&gt;
	global $dbase;&lt;br /&gt;
	global $pass_db;&lt;br /&gt;
	global $database;&lt;br /&gt;
	global $pdf_template;&lt;br /&gt;
	global $mail_template;// not used&lt;br /&gt;
	global $mail_template_txt;// only use this for plaintext message (more secure)&lt;br /&gt;
	global $pdf_css;&lt;br /&gt;
	global $narda_mail;&lt;br /&gt;
	global $admin_mail;&lt;br /&gt;
	global $replyto_mail;&lt;br /&gt;
	$partner_mail = $arrPartner[email];&lt;br /&gt;
&lt;br /&gt;
	$arrMarkers = array_merge($arrForm,$arrPartner,array(&amp;quot;rma_num&amp;quot;=&amp;gt;$rma_num));&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
	// PDF-TEMPLATE&lt;br /&gt;
	$pdf_template = file_get_contents( $pdf_template );&lt;br /&gt;
	$pdf_template = replace_markers($pdf_template,$arrMarkers);&lt;br /&gt;
	// Mail Template&lt;br /&gt;
	$mail_template_txt = file_get_contents( $mail_template_txt );&lt;br /&gt;
	$mail_template_txt = replace_markers($mail_template_txt,$arrMarkers);&lt;br /&gt;
&lt;br /&gt;
	//MAIL&lt;br /&gt;
	// Trenner für multipart mail&lt;br /&gt;
    $mid = md5( time() );&lt;br /&gt;
	$filename = &amp;quot;acc-&amp;quot;.$rma_num;&lt;br /&gt;
	&lt;br /&gt;
    // Anhang generieren&lt;br /&gt;
	include(&amp;quot;lib/mpdf56/mpdf.php&amp;quot;);&lt;br /&gt;
	$mpdf=new mPDF(&amp;#039;c&amp;#039;);&lt;br /&gt;
	$mpdf-&amp;gt;SetDisplayMode(&amp;#039;fullpage&amp;#039;);&lt;br /&gt;
	$stylesheet = file_get_contents($pdf_css);&lt;br /&gt;
	$mpdf-&amp;gt;WriteHTML($stylesheet,1); // 1 -&amp;gt; css/style only and no body/html/text&lt;br /&gt;
	$mpdf-&amp;gt;WriteHTML($pdf_template);&lt;br /&gt;
	$pdf_attachment = chunk_split(base64_encode($mpdf-&amp;gt;Output(&amp;#039;&amp;#039;,&amp;#039;S&amp;#039;)));&lt;br /&gt;
   &lt;br /&gt;
	// Mailheader&lt;br /&gt;
	//$to=$partner_mail;&lt;br /&gt;
	$to=&amp;quot;schlegel@geo-bit.de&amp;quot;;&lt;br /&gt;
	$subject = &amp;quot;Accredited Calibration Request&amp;quot;;&lt;br /&gt;
	$headers .= &amp;#039;Reply-To: &amp;#039;.$replyto_mail.&amp;quot;\r\n&amp;quot;;&lt;br /&gt;
    $headers .= &amp;quot;Return-Path: noreply@&amp;quot; .$_SERVER[&amp;#039;SERVER_NAME&amp;#039;]. &amp;quot;\r\n&amp;quot;;&lt;br /&gt;
	$headers .= &amp;#039;X-Mailer: PHP/&amp;#039;.phpversion().&amp;quot;\r\n&amp;quot;;&lt;br /&gt;
	$headers .=&amp;#039;From: NARDA-STS GmbH &amp;lt;&amp;#039;.$narda_mail.&amp;#039;&amp;gt;&amp;#039;.&amp;quot;\r\n&amp;quot;;&lt;br /&gt;
	$headers .= &amp;#039;Cc:&amp;#039;.$narda_mail.&amp;quot;\n&amp;quot;;&lt;br /&gt;
	$headers .= &amp;#039;Bcc:&amp;#039;.$admin_mail.&amp;quot;\n&amp;quot;;&lt;br /&gt;
	&lt;br /&gt;
	$headers .= &amp;quot;MIME-Version: 1.0\r\n&amp;quot;;&lt;br /&gt;
	$headers .= &amp;quot;Content-Type: multipart/mixed; boundary=\&amp;quot;&amp;quot;.$mid.&amp;quot;\&amp;quot;\r\n\r\n&amp;quot;;&lt;br /&gt;
	$headers .= &amp;quot;This is a multi-part message in MIME format.\r\n&amp;quot;;&lt;br /&gt;
	$headers .= &amp;quot;--&amp;quot;.$mid.&amp;quot;\r\n&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
	// Textpart&lt;br /&gt;
	$headers .= &amp;quot;Content-type:text/plain; charset=iso-8859-1\r\n&amp;quot;;&lt;br /&gt;
	$headers .= &amp;quot;Content-Transfer-Encoding: 7bit\r\n\r\n&amp;quot;;&lt;br /&gt;
    //$headers .= &amp;quot;Content-Type: text/html; charset=UTF-8\r\n&amp;quot;;&lt;br /&gt;
    //$headers .= &amp;quot;Content-Transfer-Encoding: 8bit\r\n\r\n&amp;quot;;&lt;br /&gt;
    $headers .= $mail_template_txt.&amp;quot;\r\n\r\n&amp;quot;;&lt;br /&gt;
	$headers .= &amp;quot;--&amp;quot;.$mid.&amp;quot;\r\n&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
	//pdf-att&lt;br /&gt;
	$headers .= &amp;quot;Content-Type: application/pdf; name=\&amp;quot;&amp;quot;.$filename.&amp;quot;\&amp;quot;\r\n&amp;quot;;&lt;br /&gt;
	$headers .= &amp;quot;Content-Transfer-Encoding: base64\r\n&amp;quot;;&lt;br /&gt;
	$headers .= &amp;quot;Content-Disposition: attachment; filename=\&amp;quot;&amp;quot;.$filename.&amp;quot;\&amp;quot;\r\n\r\n&amp;quot;;&lt;br /&gt;
	$headers .= $pdf_attachment.&amp;quot;\r\n\r\n&amp;quot;;&lt;br /&gt;
	$headers .= &amp;quot;--&amp;quot;.$mid.&amp;quot;--&amp;quot;;&lt;br /&gt;
	&lt;br /&gt;
	$addParams = &amp;#039;-fnoreply@&amp;#039;.$_SERVER[&amp;#039;SERVER_NAME&amp;#039;];&lt;br /&gt;
	$success = mail($to, $subject, $body, $headers,$addParams);&lt;br /&gt;
	return $success;&lt;br /&gt;
	//echo($headers);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== E-Mail mit Empfangsbestätigung ===&lt;br /&gt;
&lt;br /&gt;
Eine Empfangsbestätigung verschicken&lt;br /&gt;
&lt;br /&gt;
Das ist genauso einfach wie das verschicken einer ganz einfachen Textmail. Wie wir ja bereits gehört haben, gibt die mail-Funktion bei Erfolg ein TRUE zurück. Damit können wir also feststellen, ob die Nachricht des Benutzers an uns übermittelt wurde und falls ja, schicken wir ihm eine Mail als Bestätigung. Das sieht in etwa so aus:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    if (@mail( $empfaenger, htmlspecialchars( $betreff ), $mailbody, $mailheader ))&lt;br /&gt;
    {&lt;br /&gt;
        // Bei erfolgreichem Versand Danke-Seite anzeigen&lt;br /&gt;
        $mailheader  = &amp;quot;From: Firma Max Mustermann&amp;lt;mustermann@domain.tld&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
        $mailheader .= &amp;quot;Reply-To: Firma Max Mustermann&amp;lt;mustermann@domain.tld&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
        $mailheader .= &amp;quot;Return-Path: noreply@&amp;quot; .$_SERVER[&amp;#039;SERVER_NAME&amp;#039;]. &amp;quot;\r\n&amp;quot;;&lt;br /&gt;
        $mailheader .= &amp;quot;MIME-Version: 1.0\r\n&amp;quot;;&lt;br /&gt;
        $mailheader .= &amp;quot;Content-Type: text/plain; charset=UTF-8\r\n&amp;quot;;&lt;br /&gt;
        $mailheader .= &amp;quot;Content-Transfer-Encoding: 7bit\r\n&amp;quot;;&lt;br /&gt;
        $mailheader .= &amp;quot;Message-ID: &amp;lt;&amp;quot; .time(). &amp;quot; noreply@&amp;quot; .$_SERVER[&amp;#039;SERVER_NAME&amp;#039;]. &amp;quot;&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
        $mailheader .= &amp;quot;X-Mailer: PHP v&amp;quot; .phpversion(). &amp;quot;\r\n\r\n&amp;quot;;&lt;br /&gt;
 &lt;br /&gt;
        // Inhalt der Bestätigung&lt;br /&gt;
        $mailbody = &amp;#039;Vielen Dank für Ihre Email. Wir werden uns in Kürze bei Ihnen melden.&amp;#039;;&lt;br /&gt;
 &lt;br /&gt;
        // Bestätigung verschicken&lt;br /&gt;
        if (@mail( $email, &amp;quot;Die Firma Max Mustermann bedankt sich&amp;quot;, $mailbody, $mailheader ))&lt;br /&gt;
        {&lt;br /&gt;
            // Bestätigung wurde verschickt&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Das ist im Prinzip der selbe Code wie zuvor in der Text Mail. Es werden lediglich einige Kleinigkeiten im Mail Header angepasst, damit der Benutzer auch weiß, wer ihm schreibt und wohin er antworten kann.&lt;br /&gt;
&lt;br /&gt;
Damit sollten die meisten Fragen zum Thema &amp;quot;Wie versendet man eine Email mit PHP&amp;quot; geklärt sein. Wer Fragen oder Anregungen hat, kann sie gerne in diesem Thread stellen.&lt;/div&gt;</summary>
		<author><name>85.216.68.159</name></author>
	</entry>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=PHP_-_E-Mail_versenden&amp;diff=21363</id>
		<title>PHP - E-Mail versenden</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=PHP_-_E-Mail_versenden&amp;diff=21363"/>
		<updated>2016-01-29T10:20:19Z</updated>

		<summary type="html">&lt;p&gt;85.216.68.159: /* Probleme mit Spamfiltern vermeiden */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
 http://www.a2hosting.com/kb/developer-corner/php/using-php-to-send-e-mail-messages#Method-1.3A-Using-the-mail-function&lt;br /&gt;
 http://www.phpbuddy.eu/emails-mit-php-versenden.html?start=4&lt;br /&gt;
 http://de.wikipedia.org/wiki/Header_(E-Mail)#Beispielmail&lt;br /&gt;
 http://www.schlayer.org/Spamassasin-Hits-deutsche-Uebersetzung.html&lt;br /&gt;
 &lt;br /&gt;
=== Probleme mit Spamfiltern und neueren PHP Versionen vermeiden ===&lt;br /&gt;
==== Spamfilter mit -f Parameter überzeugen ====&lt;br /&gt;
Oft ist es notwendig den -f Parameter zu verwenden um Spamfiltern zu vermitteln, daß es sich nicht um einen Spamversand handelt.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$addParams = &amp;#039;-fnoreply@&amp;#039;.$_SERVER[&amp;#039;SERVER_NAME&amp;#039;];&lt;br /&gt;
$success = mail($to, $subject, $body, $headers,$addParams);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Richtige Header ====&lt;br /&gt;
Bei Problemen mit der Spamerkennung. Hinweise bieten die Codes von Spamassasin&lt;br /&gt;
&lt;br /&gt;
 Link: http://www.schlayer.org/Spamassasin-Hits-deutsche-Uebersetzung.html&lt;br /&gt;
&lt;br /&gt;
 MESSAGE              BEDEUTUNG&lt;br /&gt;
 FH_FROMEML_NOTLD     From Adresse hat keine gültige Top Level Domain (oder fehlt)&lt;br /&gt;
 INVALID_MSGID        Aufbau: &amp;lt;random characters@fqdn-of-sending-host&amp;gt; z.B. &lt;br /&gt;
 RP_MATCHES_RCVD&lt;br /&gt;
 URI_HEX&lt;br /&gt;
&lt;br /&gt;
==== Funktionierendes Beispiel====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
				$fqdn_hostname = $_SERVER[&amp;#039;SERVER_NAME&amp;#039;];&lt;br /&gt;
				$mid = &amp;quot;&amp;lt;&amp;quot; . sha1(microtime()) . &amp;quot;@&amp;quot; . $fqdn_hostname . &amp;quot;&amp;gt;&amp;quot;;&lt;br /&gt;
				$from = &amp;#039;&amp;quot;Narda Safety Test Solutions&amp;quot; &amp;lt;noreply@&amp;#039;.$_SERVER[&amp;#039;SERVER_NAME&amp;#039;].&amp;#039;&amp;gt;&amp;#039;;&lt;br /&gt;
				$admin_mail = &amp;#039;&amp;lt;schlegel@geo-bit.de&amp;gt;&amp;#039;;&lt;br /&gt;
				$replyto_mail = &amp;#039;service.narda-de@l-3com.com&amp;#039;;&lt;br /&gt;
				$to = $_POST[e_brief];&lt;br /&gt;
				$subject=&amp;quot;NARDA-STS / Request for RMA-Number&amp;quot;;&lt;br /&gt;
				$headers .= &amp;#039;Reply-To: &amp;#039;.$replyto_mail.&amp;quot;\r\n&amp;quot;;&lt;br /&gt;
			    //$headers .= &amp;quot;Return-Path: noreply@&amp;quot; .$_SERVER[&amp;#039;SERVER_NAME&amp;#039;]. &amp;quot;\r\n&amp;quot;;&lt;br /&gt;
			    //$headers .= &amp;quot;Return-Path: &amp;quot; .$replyto_mail. &amp;quot;\r\n&amp;quot;;&lt;br /&gt;
				$headers .= &amp;#039;X-Mailer: PHP/&amp;#039;.phpversion().&amp;quot;\r\n&amp;quot;;&lt;br /&gt;
				$headers .= &amp;#039;From: &amp;#039;.$from.&amp;#039;\r\n&amp;#039;;&lt;br /&gt;
				//$headers .= &amp;#039;Cc:&amp;#039;.$narda_mail.&amp;quot;\n&amp;quot;;&lt;br /&gt;
				$headers .= &amp;#039;Bcc:&amp;#039;.$admin_mail.&amp;quot;\n&amp;quot;;&lt;br /&gt;
			    $headers .= &amp;quot;MIME-Version: 1.0\r\n&amp;quot;;&lt;br /&gt;
			    $headers .= &amp;quot;Content-type: text/plain; charset=iso-8859-1\r\n&amp;quot;;&lt;br /&gt;
			    $headers .= &amp;quot;Content-Transfer-Encoding: 7bit\r\n&amp;quot;;&lt;br /&gt;
				$headers .= &amp;quot;Message-ID: &amp;quot; .$mid. &amp;quot;\r\n\r\n&amp;quot;;&lt;br /&gt;
				$addParams = &amp;#039;-fnoreply@&amp;#039;.$_SERVER[&amp;#039;SERVER_NAME&amp;#039;];&lt;br /&gt;
				$body = &amp;quot;Dear Mrs./Mr. $_POST[first_name] $_POST[last_name],\r\n&amp;quot;;&lt;br /&gt;
				$body .= &amp;quot;your email-adress has been successfully confirmed. \r\n&amp;quot;;&lt;br /&gt;
				$body .= &amp;quot;You will find the form for filling in the data of your device here:\r\n\r\n&amp;quot;;&lt;br /&gt;
				$body .= $secure_root_url.&amp;quot;/$ziel_ordner/RMA/rma_reCall.php?req_num=$req_number&amp;quot;;&lt;br /&gt;
				$state=mail($to, $subject, $body, $headers, $addParams);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Body oder Header ====&lt;br /&gt;
Was gehört in der Mailfunktion von php in den Header was in den Body. Es gibt vor allem bei Mails mit Attachments schnell Probleme wegen Zuvielen Zeilenumbrüchen, wenn man etwas falsch macht. Hier ein Ausschnitt der funktioniert:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$to = &amp;#039;Schlegel &amp;lt;schlegel@geo-bit.de&amp;gt;&amp;#039;;&lt;br /&gt;
$mailfrom = $to = &amp;#039;Stephan &amp;lt;stephanschlegel@irgendwo.de&amp;gt;&amp;#039;;&lt;br /&gt;
$replyto = &amp;#039;schlegel@geo-bit.de&amp;#039;;&lt;br /&gt;
$headers = &amp;#039;&amp;#039;;&lt;br /&gt;
$body = &amp;quot;mein E-Mail Text&amp;quot;;&lt;br /&gt;
$subject = &amp;quot;mein Betreff&amp;quot;;&lt;br /&gt;
$headers .= &amp;#039;Reply-To: &amp;#039;.$replyto.&amp;quot;\r\n&amp;quot;;&lt;br /&gt;
//$headers .= &amp;quot;Return-Path: noreply@&amp;quot; .$_SERVER[&amp;#039;SERVER_NAME&amp;#039;]. &amp;quot;\r\n&amp;quot;;&lt;br /&gt;
$headers .= &amp;quot;Return-Path: &amp;quot; .$replyto. &amp;quot;\r\n&amp;quot;;&lt;br /&gt;
$headers .= &amp;#039;X-Mailer: PHP/&amp;#039;.phpversion().&amp;quot;\r\n&amp;quot;;&lt;br /&gt;
$headers .=&amp;#039;From: &amp;#039;.$mailfrom.&amp;quot;\r\n&amp;quot;;&lt;br /&gt;
$headers .= &amp;quot;MIME-Version: 1.0\r\n&amp;quot;;&lt;br /&gt;
if($has_upload){&lt;br /&gt;
	$headers .= &amp;quot;Content-Type: multipart/mixed; boundary=\&amp;quot;&amp;quot;.$mid.&amp;quot;\&amp;quot;\r\n\r\n&amp;quot;;&lt;br /&gt;
	//$message .= &amp;quot;This is a multi-part message in MIME format.\r\n&amp;quot;;&lt;br /&gt;
	$message .= &amp;quot;--&amp;quot;.$mid.&amp;quot;\r\n&amp;quot;;&lt;br /&gt;
	//attachment part&lt;br /&gt;
	$content_type= getMimeType($tmp_path);&lt;br /&gt;
	$message .= &amp;quot;Content-Type: &amp;quot;.$content_type.&amp;quot;; name=\&amp;quot;&amp;quot;.$filename.&amp;quot;\&amp;quot;\r\n&amp;quot;;&lt;br /&gt;
	$message .= &amp;quot;Content-Transfer-Encoding: base64\r\n&amp;quot;;&lt;br /&gt;
	$message .= &amp;quot;Content-Disposition: attachment; filename=\&amp;quot;&amp;quot;.$filename.&amp;quot;\&amp;quot;\r\n\r\n&amp;quot;;&lt;br /&gt;
	$message .= $attachment.&amp;quot;\r\n\r\n&amp;quot;;&lt;br /&gt;
	$message .= &amp;quot;--&amp;quot;.$mid.&amp;quot;\r\n&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
// Text part&lt;br /&gt;
$message .= &amp;quot;Content-Type: text/plain; charset=UTF-8\r\n&amp;quot;;	&lt;br /&gt;
$message .= &amp;quot;Content-Transfer-Encoding: 8bit\r\n\r\n&amp;quot;;	&lt;br /&gt;
$message .= $body.&amp;quot;\r\n\r\n&amp;quot;;&lt;br /&gt;
if($has_upload){&lt;br /&gt;
	$message .= &amp;quot;--&amp;quot;.$mid.&amp;quot;\r\n&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
$addParams = &amp;#039;-fnoreply@&amp;#039;.$_SERVER[&amp;#039;SERVER_NAME&amp;#039;];&lt;br /&gt;
$success = mail($to, $subject,$message, $headers, $addParams);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gmx Header ===&lt;br /&gt;
Bei GMX können Kleinigkeiten dazu führen daß die Mail als Spam eingestuft wird. Wichtig beim Absender z.B. das folgende Format:&lt;br /&gt;
 From: &amp;quot;Geocaching&amp;quot; &amp;lt;noreply@geocaching.com&amp;gt;&lt;br /&gt;
 PHP-Beispiel:&lt;br /&gt;
 $headers .=&amp;#039;From: &amp;quot;Narda&amp;quot; &amp;lt;&amp;#039;.$from.&amp;quot;&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
=== Testmail ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   $template = &amp;quot;Dies ist ein Test&amp;quot;;&lt;br /&gt;
   $empfaenger = &amp;quot;schlegel@geo-bit.de&amp;quot;;&lt;br /&gt;
   // Trenner für den Anhang&lt;br /&gt;
   $trenner = md5( time() );&lt;br /&gt;
&lt;br /&gt;
   // Mail Header erstellen&lt;br /&gt;
   $mailheader = &amp;#039;&amp;#039;;&lt;br /&gt;
   $mailheader .= &amp;quot;Reply-To: Schlegel&amp;lt;schlegel@geo-bit.de&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
   $mailheader .= &amp;quot;Return-Path: noreply@&amp;quot; .$_SERVER[&amp;#039;SERVER_NAME&amp;#039;]. &amp;quot;\r\n&amp;quot;;&lt;br /&gt;
   $mailheader .= &amp;quot;Message-ID: &amp;lt;&amp;quot; .time(). &amp;quot; noreply@&amp;quot; .$_SERVER[&amp;#039;SERVER_NAME&amp;#039;]. &amp;quot;&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
   $mailheader .= &amp;quot;X-Mailer: PHP v&amp;quot; .phpversion(). &amp;quot;\r\n&amp;quot;;&lt;br /&gt;
   $mailheader .= &amp;quot;From: Keine Antwort&amp;lt;noreply@&amp;quot; .$_SERVER[&amp;#039;SERVER_NAME&amp;#039;]. &amp;quot;&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
   $mailheader .= &amp;quot;MIME-Version: 1.0\r\n&amp;quot;;&lt;br /&gt;
   $mailheader .= &amp;quot;Content-Type: multipart/mixed;\r\n&amp;quot;;&lt;br /&gt;
   $mailheader .= &amp;quot; boundary = &amp;quot; .$trenner;&lt;br /&gt;
   $mailheader .= &amp;quot;\r\n\r\n&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
   // Mailbody vorbereiten&lt;br /&gt;
   $mailbody  = &amp;quot;This is a multi-part message in MIME format\r\n&amp;quot;;&lt;br /&gt;
   $mailbody .= &amp;quot;--&amp;quot; .$trenner. &amp;quot;\r\n&amp;quot;;&lt;br /&gt;
   $mailbody .= &amp;quot;Content-Type: text/html; charset=UTF-8\r\n&amp;quot;;&lt;br /&gt;
   $mailbody .= &amp;quot;Content-Transfer-Encoding: 8bit\r\n\r\n&amp;quot;;&lt;br /&gt;
   $mailbody .= $template. &amp;quot;\r\n\r\n&amp;quot;;&lt;br /&gt;
   echo($mailheader);&lt;br /&gt;
   echo($mailbody);&lt;br /&gt;
   // Email versenden&lt;br /&gt;
   if (mail( $empfaenger, htmlspecialchars( $betreff ), $mailbody, $mailheader ))&lt;br /&gt;
   {&lt;br /&gt;
       // Bei erfolgreichem Versand Danke-Seite anzeigen&lt;br /&gt;
       echo &amp;#039;Danke, die Email wurde verschickt!&amp;#039;;&lt;br /&gt;
   }else{&lt;br /&gt;
	echo &amp;#039;Fehler beim Versand&amp;#039;;&lt;br /&gt;
   }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== Einfache Text E-Mail mit Template ===&lt;br /&gt;
Einfache Text Email&lt;br /&gt;
&lt;br /&gt;
Zuerst das Listing unserer Template Datei mailbody.txt&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Soeben ist eine Nachricht von ###NAME### eingetroffen.&lt;br /&gt;
Als Antwortadresse wurde ###EMAIL### angegeben.&lt;br /&gt;
Die Nachricht die gesendet wurde:&lt;br /&gt;
###NACHRICHT###&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wie man unschwer erkennt, ist das ganz normaler und schlichter Text. Lediglich die Platzhalter darin fallen auf. Diese Platzhalter korrespondieren in unserem Script mit den Benutzereingaben und werden in unserem Script durch diese ersetzt.&lt;br /&gt;
Dadurch das wir den Text, der später per Email an uns geschickt wird, in einer eigenen Datei ablegen, können wir den Text schnell und flexibel beliebig verändern und erweitern. Da es sich hierbei um einen Mailer handelt der nur reinen Text verschickt, müssen wir auf jegliche Art von Formatierungen verzichten.&lt;br /&gt;
&lt;br /&gt;
Bisher haben wir das HTML-Formular, die Funktionen und das Mail Template kennengelernt, fehlt nur noch das Hauptscript, dass wir uns gleich mal vorknöpfen.&lt;br /&gt;
&lt;br /&gt;
Listing der Datei mail.php&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
 &lt;br /&gt;
header( &amp;#039;Content-Type: text/html; charset=utf-8&amp;#039; );&lt;br /&gt;
 &lt;br /&gt;
// Empfänger Email&lt;br /&gt;
$empfaenger = &amp;#039;max.mustermann@domain.tld&amp;#039;;&lt;br /&gt;
 &lt;br /&gt;
// Prüfen ob das Formular abgeschickt wurde&lt;br /&gt;
if (isset($_POST[&amp;#039;senden&amp;#039;]))&lt;br /&gt;
{&lt;br /&gt;
    // Funktionen einbinden&lt;br /&gt;
    include( &amp;#039;funktionen.inc.php&amp;#039; );&lt;br /&gt;
 &lt;br /&gt;
    // Benutzereingaben bereinigen und auf Injection prüfen&lt;br /&gt;
    cleanInput();&lt;br /&gt;
 &lt;br /&gt;
    // Name prüfen&lt;br /&gt;
    $name = checkName( $_POST[&amp;#039;name&amp;#039;] );&lt;br /&gt;
    // Email prüfen&lt;br /&gt;
    $email = checkEmail( $_POST[&amp;#039;email&amp;#039;] );&lt;br /&gt;
    // Betreff und Nachricht prüfen&lt;br /&gt;
    if ((strlen( $_POST[&amp;#039;betreff&amp;#039;] ) &amp;lt; 5) || (strlen( $_POST[&amp;#039;nachricht&amp;#039;] ) &amp;lt; 5))&lt;br /&gt;
    {&lt;br /&gt;
        die( &amp;#039;Bitte füllen Sie alle Felder aus!&amp;#039; );&lt;br /&gt;
    }&lt;br /&gt;
    else&lt;br /&gt;
    {&lt;br /&gt;
        $betreff   = $_POST[&amp;#039;betreff&amp;#039;];&lt;br /&gt;
        $nachricht = $_POST[&amp;#039;nachricht&amp;#039;];&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    // --------------------------------------------------------------------------------&lt;br /&gt;
    // Wurde das Script bisher nicht abgebrochen, wurde das Formular korrekt ausgefüllt&lt;br /&gt;
    // --------------------------------------------------------------------------------&lt;br /&gt;
 &lt;br /&gt;
    // Template mit dem Mailbody laden und für den Versand vorbereiten&lt;br /&gt;
    $mailbody = file_get_contents( &amp;#039;mailbody.txt&amp;#039; );&lt;br /&gt;
    // Platzhalter mit den Benutzereingaben ersetzen&lt;br /&gt;
    $mailbody = str_replace( &amp;#039;###NAME###&amp;#039;, htmlspecialchars( $name ), $mailbody );&lt;br /&gt;
    $mailbody = str_replace( &amp;#039;###EMAIL###&amp;#039;, $email, $mailbody );&lt;br /&gt;
    $mailbody = str_replace( &amp;#039;###NACHRICHT###&amp;#039;, htmlspecialchars( $nachricht ), $mailbody );&lt;br /&gt;
 &lt;br /&gt;
    // Mail Header erstellen&lt;br /&gt;
    $mailheader  = &amp;quot;From: PHP Email Tutorial&amp;lt;noreply@&amp;quot; .$_SERVER[&amp;#039;SERVER_NAME&amp;#039;]. &amp;quot;&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
    $mailheader .= &amp;quot;Reply-To: &amp;quot; .$name. &amp;quot;&amp;lt;&amp;quot; .$email. &amp;quot;&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
    $mailheader .= &amp;quot;Return-Path: noreply@&amp;quot; .$_SERVER[&amp;#039;SERVER_NAME&amp;#039;]. &amp;quot;\r\n&amp;quot;;&lt;br /&gt;
    $mailheader .= &amp;quot;MIME-Version: 1.0\r\n&amp;quot;;&lt;br /&gt;
    $mailheader .= &amp;quot;Content-Type: text/plain; charset=UTF-8\r\n&amp;quot;;&lt;br /&gt;
    $mailheader .= &amp;quot;Content-Transfer-Encoding: 7bit\r\n&amp;quot;;&lt;br /&gt;
    $mailheader .= &amp;quot;Message-ID: &amp;lt;&amp;quot; .time(). &amp;quot; noreply@&amp;quot; .$_SERVER[&amp;#039;SERVER_NAME&amp;#039;]. &amp;quot;&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
    $mailheader .= &amp;quot;X-Mailer: PHP v&amp;quot; .phpversion(). &amp;quot;\r\n\r\n&amp;quot;;&lt;br /&gt;
 &lt;br /&gt;
    // Email versenden&lt;br /&gt;
    if (@mail( $empfaenger, htmlspecialchars( $betreff ), $mailbody, $mailheader ))&lt;br /&gt;
    {&lt;br /&gt;
        // Bei erfolgreichem Versand Danke-Seite anzeigen&lt;br /&gt;
        echo &amp;#039;Danke, die Email wurde verschickt!&amp;#039;;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Das sieht im ersten Moment mehr und wilde&lt;br /&gt;
r aus, als es das eigentlich ist. Der obere Teil ist schnell erklärt. Zunächst setzen wir die Email des Empfängers, der idR wir selbst sind. Dann wird geprüft ob das Formular überhaupt abgeschickt wurde und wenn dem so ist, binden wir die benötigten Funktionen ein und überprüfen die Benutzereingaben.&lt;br /&gt;
&lt;br /&gt;
Mit den Zeilen ...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    // Template mit dem Mailbody laden und für den Versand vorbereiten&lt;br /&gt;
    $mailbody = file_get_contents( &amp;#039;mailbody.txt&amp;#039; );&lt;br /&gt;
    // Platzhalter mit den Benutzereingaben ersetzen&lt;br /&gt;
    $mailbody = str_replace( &amp;#039;###NAME###&amp;#039;, htmlspecialchars( $name ), $mailbody );&lt;br /&gt;
    $mailbody = str_replace( &amp;#039;###EMAIL###&amp;#039;, $email, $mailbody );&lt;br /&gt;
    $mailbody = str_replace( &amp;#039;###NACHRICHT###&amp;#039;, htmlspecialchars( $nachricht ), $mailbody );&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
... laden wir das Mail Template (file_get_contents) und ersetzen mit einfachen str_replace Funktionen die Platzhalter. Auch wenn wir bereits auf mögliche Injections geprüft haben, entschärfen wir dennoch die Eingaben mit htmlspecialchars, damit uns niemand etwas unterschiebt. Bei der Email ist das nicht nötig, da diese sonst nicht durch den Filter gekommen wäre.&lt;br /&gt;
&lt;br /&gt;
Jetzt kommen wir zu dem wichtigsten Teil, der ein erfolgreiches Versenden überhaupt erst möglich macht: dem Mail Header.&lt;br /&gt;
&lt;br /&gt;
Der Mail Header ist der Kopf der Email, der alle relevanten und wichtigen Informationen über unsere Email enthält. Sehr sehr häufig sieht man in Scripts und Tutorials, dass hier lediglich das &amp;quot;From:&amp;quot; angegeben ist. Wenn nur diese Information angegeben ist, bleibt die Mail sehr häufig in einem Spamfilter hängen. Kein Mensch würde auf die Idee kommen einen echten Brief zu verschicken und als Beschreibung auf dem Brief nur einen Name angeben, ohne komplette Anschrift und Absenderadresse. Wieso dann bei einer Email?!&lt;br /&gt;
&lt;br /&gt;
Schauen wir uns also an wie ein Header aussieht, der die wichtigsten Angaben enthält:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    $mailheader  = &amp;quot;From: PHP Email Tutorial&amp;lt;noreply@&amp;quot; .$_SERVER[&amp;#039;SERVER_NAME&amp;#039;]. &amp;quot;&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
    $mailheader .= &amp;quot;Reply-To: &amp;quot; .$name. &amp;quot;&amp;lt;&amp;quot; .$email. &amp;quot;&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
    $mailheader .= &amp;quot;Return-Path: noreply@&amp;quot; .$_SERVER[&amp;#039;SERVER_NAME&amp;#039;]. &amp;quot;\r\n&amp;quot;;&lt;br /&gt;
    $mailheader .= &amp;quot;MIME-Version: 1.0\r\n&amp;quot;;&lt;br /&gt;
    $mailheader .= &amp;quot;Content-Type: text/plain; charset=UTF-8\r\n&amp;quot;;&lt;br /&gt;
    $mailheader .= &amp;quot;Content-Transfer-Encoding: 7bit\r\n&amp;quot;;&lt;br /&gt;
    $mailheader .= &amp;quot;Message-ID: &amp;lt;&amp;quot; .time(). &amp;quot; noreply@&amp;quot; .$_SERVER[&amp;#039;SERVER_NAME&amp;#039;]. &amp;quot;&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
    $mailheader .= &amp;quot;X-Mailer: PHP v&amp;quot; .phpversion(). &amp;quot;\r\n\r\n&amp;quot;;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Steuerungzeichen &amp;quot;\r\n&amp;quot; entsprechen einen Wagenrücklauf und Zeilenvorschub oder anders ausgedrückt, ein Zeilenumbruch. Diese Steuerungzeichen sind betriebssystemabhängig und müssen ggfs. angepasst werden. Auf Linux würde man z.B. nur &amp;quot;\n&amp;quot; verwenden. Schauen wir uns nun die anderen angaben an:&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;From&amp;#039;&amp;#039;&amp;#039; - Das ist die Absendeadresse und der dazugehörige Name. Es ist üblich diesen in der Form Name anzugeben. Das ist die absolute Minimumangabe für inen Mailheader. Fehlt das From, wird der Versand der Mail fehlschlagen.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Reply-To&amp;#039;&amp;#039;&amp;#039; - Das Format kann entweder nur eine Email Adresse sein, oder man wählt das Format wir bei From. Dieses Feld ist die Antwortadresse an die die Mail geschickt wird, wenn wir im Mail Client auf antworten klicken.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Return-Path&amp;#039;&amp;#039;&amp;#039; - Konnte die Mail nicht zugestellt werden, wird dies an diese Adresse gemeldet.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;MIME-Version&amp;#039;&amp;#039;&amp;#039; - Entspricht dem MIME Typ der Mail.&lt;br /&gt;
    &lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Content-Type&amp;#039;&amp;#039;&amp;#039; - Das ist die Information die dem Mail Client mitteilt, um welche Art Mail es sich handelt und welcher Zeichensatz zur Darstellung benutzt werden soll.&lt;br /&gt;
    &lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Content-Transfer-Encoding&amp;#039;&amp;#039;&amp;#039; - Dies beschreibt die Art der Übertragung und wie sowohl Mailserver, als auch Email Clients diese Mail interpretieren. 7bit ist die kleinste Form, die maximal mögliche Kompatibilität ermöglicht. Beim 7bit ASCII Zeichensatz können die ersten 128 zeichen der ASCII Tabelle dargestellt werden. Zeichen wie deutsche Umlaute sind darin nicht vorgesehen. Bei der 8bit Übertragung können bis zu 256 zeichen dargestellt werden. Ältere Mailerver, so liest man, verstehen nur 7bit und verwerfen Anfragen die mit 8bit übertragen werden sollen. Anders ausgedrückt, es kann passieren das die Mail nicht ankommt. Ich persönlich hatte damit allerdings noch nie Probleme und die 7bit &amp;quot;Zwangsangabe&amp;quot; scheint veraltet zu sein.&lt;br /&gt;
    &lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Message-ID&amp;#039;&amp;#039;&amp;#039; - Die Message ID ist einmalig, bzw. sollte es sein, wodurch die Mail eindeutig zugeordnet werden kann.&lt;br /&gt;
    &lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;X-Mailer&amp;#039;&amp;#039;&amp;#039; - Beschreibt den Client der die Mail versendet hat. In unserem Fall geben wir die PHP Version an, damit Mailserver auf der Route wissen, dass diese Mail mit PHP verschickt wurde.&lt;br /&gt;
&lt;br /&gt;
Es gibt noch weitere Felder und Varianten, die uns aber im moment nicht kümmern. Im Abschnitt Mail mit Anhang werden wir noch einen etwas anderen Header kennen lernen.&lt;br /&gt;
Speziell die letzten beiden Angaben (Message ID und X_Mailer) im Header oben sind sehr wichtige Informationen. Fehlen diese Angaben, ist die Wahrscheinlichkeit sehr hoch, dass die Mail niemals beim Empfänger ankommen wird, weil die Mail irgendwo unterwegs in einem Spamfilter hängen bleibt und nicht weitergeleitet wird!&lt;br /&gt;
&lt;br /&gt;
Falls also eine Mail nicht ankommt, liegt das in den aller meisten Fällen entweder am Transfer-Encoding (7bit oder 8bit) oder an fehlenden Absendeangaben!&lt;br /&gt;
&lt;br /&gt;
Der Rest des Scripts ist sehr einfach, weil hier einfach nur noch die Mail verschickt wird.&lt;br /&gt;
&lt;br /&gt;
    if (@mail( $empfaenger, htmlspecialchars( $betreff ), $mailbody, $mailheader ))&lt;br /&gt;
    {&lt;br /&gt;
        // Bei erfolgreichem Versand Danke-Seite anzeigen&lt;br /&gt;
        echo &amp;#039;Danke, die Email wurde verschickt!&amp;#039;;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
Die mail-Funktion kennt noch einen 5. Parameter auf den ich jetzt nicht eingehen werde, weil dieser nur in den seltensten Fällen unterstützt wird. Wer mehr darüber erfahren möchte kann sich darüber in der Online-Doku informieren. Die mail-Funktion selbst liefert entweder TRUE oder FALSE zurück. Bei einem FALSE konnte die Mail nicht für den Versand übergeben werden und wir können entsprechend darauf reagieren. Im Falle von TRUE heisst das zwar das die Mail für den Versand angenommen wurde, aber es ist nicht prüfbar ob die Mail auch tatsächlich beim Empfänger ankam! Einige Gründe dafür stehen weiter oben. Wurde die Mail für den Versand akzeptiert, können wir darauf angemessen reagieren, indem wir den Besucher zu einer Danke-Seite weiterleiten oder, was weiter unter gezeigt wird, dem Benutzer eine Empfangsbestätigung, respektive Kopie der Mail an seine Adresse schicken.&lt;br /&gt;
&lt;br /&gt;
Soweit so gut. Dieser Abschnitt fiel etwas länger aus, weil ich die prinzipielle Funktionsweise und den Header beschrieben habe. Die nachfolgenden Beispiele sind über große Strecken identisch, deswegen spare ich mir dort die Erklärungen und gehe nur auf die abweichenden Passagen ein.&lt;br /&gt;
&lt;br /&gt;
=== E-Mail mit CSS Formatierung ===&lt;br /&gt;
&lt;br /&gt;
Eine Email im HTML Format zu senden ist im Grunde genommen nichts anderes, als eine einzelne Webseite per Email zu verschicken. Wir haben also mehr oder weniger freie Hand was die Gestaltung angeht, solange wir uns an die HTML und CSS Richtlinien halten. Das wird sofort ersichtlicht, wenn man das Template für die Email sieht.&lt;br /&gt;
&lt;br /&gt;
Listing der Datei mailbody.txt&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE html PUBLIC &amp;quot;-//W3C//DTD XHTML 1.0 Transitional//EN&amp;quot; &amp;quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;html xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot; xml:lang=&amp;quot;de&amp;quot; lang=&amp;quot;de&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
&amp;lt;meta http-equiv=&amp;quot;Content-Type&amp;quot; content=&amp;quot;text/html; charset=utf-8&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;title&amp;gt;Email als HTML&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;style type=&amp;quot;text/css&amp;quot;&amp;gt;&lt;br /&gt;
body { font: normal 12px Verdana, Arial, Helvetica, sans-serif; }&lt;br /&gt;
a { color: blue; text-decoration: none; }&lt;br /&gt;
h2 { font-size: 16px; font-weight: bold; }&lt;br /&gt;
.gruen { color: green; }&lt;br /&gt;
&amp;lt;/style&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt;Soeben ist eine Nachricht von &amp;lt;span class=&amp;quot;gruen&amp;quot;&amp;gt;###NAME###&amp;lt;/span&amp;gt; eingetroffen.&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Als Antwortadresse wurde &amp;lt;a href=&amp;quot;mailto:###EMAIL###&amp;quot;&amp;gt;###EMAIL###&amp;lt;/a&amp;gt; angegeben.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Die Nachricht die gesendet wurde lautet:&amp;lt;br /&amp;gt;&lt;br /&gt;
###NACHRICHT###&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Template besteht aus einer normalen HTML Datei mit etwas CSS. Auch hier treffen wir wieder unsere Platzhalter, die durch die Benutzereingaben ersetzt werden.&lt;br /&gt;
&lt;br /&gt;
Die Datei funktionen.inc.php ist identisch mit wie beim vorherigen Beispiel. Auch die mail.php weicht nur minimal vom letzten Beispiel ab - das aber mit großer Wirkung!&lt;br /&gt;
Die erste Abweichung findet in der Zeile zum ersetzen des Platzhalters für die Nachricht statt.&lt;br /&gt;
&lt;br /&gt;
 $mailbody = str_replace( &amp;#039;###NACHRICHT###&amp;#039;, nl2br( htmlspecialchars( $nachricht ) ), $mailbody );&lt;br /&gt;
&lt;br /&gt;
Ergänzt wurde hier die Funktion nl2br. Diese Funktion bewirkt, dass das Steuerungzeichen für einen Zeilenumbruch (\n) in ein HTML-konformes Break (&amp;lt;br /&amp;gt;) umgewandelt wird. Ohne diese Funktion hätten wir bei der Ausgabe nur eine laaaange Zeile Text ohne neue Absätze und Umbrüche.&lt;br /&gt;
&lt;br /&gt;
Die nächsten beiden Veränderungen finden im Mail Header statt. Da wird nun ja keinen reinen Text, sondern HTML verschicken, muß natürlich der Content-Type angepasst werden. Ebenso ändern wir das Transfer-Encoding auf 8bit. Hier die beiden geänderten Zeilen:&lt;br /&gt;
&lt;br /&gt;
    $mailheader .= &amp;quot;Content-Type: text/html; charset=UTF-8\r\n&amp;quot;;&lt;br /&gt;
    $mailheader .= &amp;quot;Content-Transfer-Encoding: 8bit\r\n&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
That&amp;#039;s it!&lt;br /&gt;
Diese kleinen Veränderungen haben eine solch große Auswirkung auf die Art der Darstellung!&lt;br /&gt;
&lt;br /&gt;
Das Ergebnis im Mail Client:&lt;br /&gt;
&lt;br /&gt;
(Deutlich zu sehen das die H2-Überschrift sich absetzt und auch der Name durch das CSS farblich hervorgehoben wird)&lt;br /&gt;
&lt;br /&gt;
Vermutlich stand jeder angehende Programmierer schon mal an dieser Stelle. Voller Stolz blickt man in sein Postfach, wo die erste Mail vom eigenen Formmailer eingetroffen ist. Dann denkt man sich: &amp;quot;Das war ja einfach, mit nur so wenigen Zeilen Code so ein Ergebnis zu erzielen. Wie schwer kann es da schon sein auch eine Datei mitzuschicken?!&amp;quot;.&lt;br /&gt;
Angesichts der oben gezeigten Beispiele, und wie minimal der Unterschied zwischen Text Mail und HTML Mail ist, neigt man dazu zu denken, dass dies mit einem Dateianhang ebenso einfach ist.&lt;br /&gt;
&lt;br /&gt;
Tja, leider ist dem nicht so. Das senden von Dateianhänge ist erheblich aufwändiger als das senden einer Text/HTML Mail. Das Formular ist abweichend, der Mail Header ist abweichend, der Mail Body muß in einzelne Teilbereiche getrennt werden, Dateianhänge müssen Richtlinien beachten, was die Zeilenlänge und die Art der Zeichen innerhalb der Mail angeht.&lt;br /&gt;
Glücklicherweise hilft uns PHP bei den meisten Sachen und deshalb werden wir auch dieses Problem meistern. :)&lt;br /&gt;
&lt;br /&gt;
=== E-Mail mit CSS und Anhang ===&lt;br /&gt;
Siehe auch: [[PHP - Upload Formular]]&lt;br /&gt;
Todo Quelle siehe oben (2012-03)&lt;br /&gt;
&lt;br /&gt;
HTML Email mit CSS Formatierung und Dateianhang&lt;br /&gt;
&lt;br /&gt;
Da wir eine Datei mit der Mail verschicken möchten, muß das Formular natürlich dahingehend erweitert werden, dass ein Upload auch möglich ist. In unserem Beispiel möchten wir eine JPG datei anhängen und erlauben auch nur das hochladen dieses Bildtyps.&lt;br /&gt;
Die Template Datei ist identisch zum vorherigen HTML Beispiel. In der Datei funktionen.inc.php fügen wir aber eine weitere Funktion hinzu, die für uns prüft, ob eine Datei hochgeladen wurde und ob es sich dabei um eine JPG Datei handelt.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
function checkFile()&lt;br /&gt;
{&lt;br /&gt;
    if ($_FILES[&amp;#039;datei&amp;#039;][&amp;#039;error&amp;#039;] == 0 &amp;amp;&amp;amp;&lt;br /&gt;
        $_FILES[&amp;#039;datei&amp;#039;][&amp;#039;type&amp;#039;] == &amp;#039;image/jpeg&amp;#039;)&lt;br /&gt;
    {&lt;br /&gt;
        return $_FILES[&amp;#039;datei&amp;#039;][&amp;#039;name&amp;#039;];&lt;br /&gt;
    }&lt;br /&gt;
    else&lt;br /&gt;
    {&lt;br /&gt;
        die( &amp;#039;Bitte eine gültige JPG Datei anhängen!&amp;#039; );&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In der Datei mail.php wird sich nun einiges ändern. Zunächst erweitern wir die einleitende Abfrage dahingehend, dass wir feststellen ob auch eine Datei angehängt wurde ...&lt;br /&gt;
&lt;br /&gt;
 if (isset($_POST[&amp;#039;senden&amp;#039;]) &amp;amp;&amp;amp; $_FILES[&amp;#039;datei&amp;#039;][&amp;#039;size&amp;#039;] &amp;gt; 0)&lt;br /&gt;
&lt;br /&gt;
... und fügen ebenso den Aufruf für die neue Funktion hinzu, die prüft ob ein JPG hochgeladen wurde:&lt;br /&gt;
&lt;br /&gt;
 $uploadname = checkFile();&lt;br /&gt;
&lt;br /&gt;
Das weitere Listing der Datei mail.php sieht wie folgt aus:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    // Template mit dem Mailbody laden&lt;br /&gt;
    $template = file_get_contents( &amp;#039;mailbody.txt&amp;#039; );&lt;br /&gt;
    // Trenner für den Anhang&lt;br /&gt;
    $trenner = md5( time() );&lt;br /&gt;
 &lt;br /&gt;
    // Platzhalter mit den Benutzereingaben ersetzen&lt;br /&gt;
    $template = str_replace( &amp;#039;###NAME###&amp;#039;, htmlspecialchars( $name ), $template );&lt;br /&gt;
    $template = str_replace( &amp;#039;###EMAIL###&amp;#039;, $email, $template );&lt;br /&gt;
    $template = str_replace( &amp;#039;###NACHRICHT###&amp;#039;, nl2br( htmlspecialchars( $nachricht ) ), $template );&lt;br /&gt;
 &lt;br /&gt;
    // Mail Header erstellen&lt;br /&gt;
    $mailheader .= &amp;quot;Reply-To: &amp;quot; .$name. &amp;quot;&amp;lt;&amp;quot; .$email. &amp;quot;&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
    $mailheader .= &amp;quot;Return-Path: noreply@&amp;quot; .$_SERVER[&amp;#039;SERVER_NAME&amp;#039;]. &amp;quot;\r\n&amp;quot;;&lt;br /&gt;
    $mailheader .= &amp;quot;Message-ID: &amp;lt;&amp;quot; .time(). &amp;quot; noreply@&amp;quot; .$_SERVER[&amp;#039;SERVER_NAME&amp;#039;]. &amp;quot;&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
    $mailheader .= &amp;quot;X-Mailer: PHP v&amp;quot; .phpversion(). &amp;quot;\r\n&amp;quot;;&lt;br /&gt;
    $mailheader .= &amp;quot;From: PHP Email Tutorial&amp;lt;noreply@&amp;quot; .$_SERVER[&amp;#039;SERVER_NAME&amp;#039;]. &amp;quot;&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
    $mailheader .= &amp;quot;MIME-Version: 1.0\r\n&amp;quot;;&lt;br /&gt;
    $mailheader .= &amp;quot;Content-Type: multipart/mixed;\r\n&amp;quot;;&lt;br /&gt;
    $mailheader .= &amp;quot; boundary = &amp;quot; .$trenner;&lt;br /&gt;
    $mailheader .= &amp;quot;\r\n\r\n&amp;quot;;&lt;br /&gt;
 &lt;br /&gt;
    // Mailbody vorbereiten&lt;br /&gt;
    $mailbody  = &amp;quot;This is a multi-part message in MIME format\r\n&amp;quot;;&lt;br /&gt;
    $mailbody .= &amp;quot;--&amp;quot; .$trenner. &amp;quot;\r\n&amp;quot;;&lt;br /&gt;
    $mailbody .= &amp;quot;Content-Type: text/html; charset=UTF-8\r\n&amp;quot;;&lt;br /&gt;
    $mailbody .= &amp;quot;Content-Transfer-Encoding: 8bit\r\n\r\n&amp;quot;;&lt;br /&gt;
    $mailbody .= $template. &amp;quot;\r\n\r\n&amp;quot;;&lt;br /&gt;
 &lt;br /&gt;
    // Anhang anfügen&lt;br /&gt;
    $mailbody .= &amp;quot;--&amp;quot; .$trenner. &amp;quot;\r\n&amp;quot;;&lt;br /&gt;
    $mailbody .= &amp;quot;Content-Type: image/jpeg; name=\&amp;quot;&amp;quot; .$uploadname. &amp;quot;\&amp;quot;\r\n&amp;quot;;&lt;br /&gt;
    $mailbody .= &amp;quot;Content-Transfer-Encoding: base64\r\n&amp;quot;;&lt;br /&gt;
    $mailbody .= &amp;quot;Content-Disposition: attachment; filename=\&amp;quot;&amp;quot; .$uploadname. &amp;quot;\&amp;quot;\r\n\r\n&amp;quot;;&lt;br /&gt;
    $mailbody .= chunk_split( base64_encode( file_get_contents( $_FILES[&amp;#039;datei&amp;#039;][&amp;#039;tmp_name&amp;#039;] ) ) );&lt;br /&gt;
    $mailbody .= &amp;quot;\n&amp;quot;;&lt;br /&gt;
 &lt;br /&gt;
    // Email versenden&lt;br /&gt;
    if (@mail( $empfaenger, htmlspecialchars( $betreff ), $mailbody, $mailheader ))&lt;br /&gt;
    {&lt;br /&gt;
        // Bei erfolgreichem Versand Danke-Seite anzeigen&lt;br /&gt;
        echo &amp;#039;Danke, die Email wurde verschickt!&amp;#039;;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wir sehen auf den ersten Blick, dass dieser Code ganz anders aussieht als das vorherige Beispiel. Gehen wir den Code mal der Reihe nach durch, um etwas Licht in&amp;#039;s Dunkel zu bringen.&lt;br /&gt;
&lt;br /&gt;
Im oberen Bereich erzeugen wir einen eindeutigen String, den wir zum trennen der verschiedenen Teilbereiche der Mail verwenden werden:&lt;br /&gt;
&lt;br /&gt;
 $trenner = md5( time() );&lt;br /&gt;
&lt;br /&gt;
Der erste Teil des Mail Header ist uns bereits bekannt, aber beim Content-Type benötigen wir nun eine andere Angabe.&lt;br /&gt;
&lt;br /&gt;
 $mailheader .= &amp;quot;Content-Type: multipart/mixed;\r\n&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
Dieser Content-Type ähnelt der Angabe &amp;quot;multipart/form-data&amp;quot; in einem HTML Formular, wenn wir dort ebenfalls gemischte Inhalte haben, nämlich Text und Dateien. Damit der Mail Client nun weiß an welchen Stellen im gesendeten Quellcode er Inhalte trennen muß, teilen wir im Header den boundary-String mit.&lt;br /&gt;
&lt;br /&gt;
An dieser Stelle möchte ich noch auf 2 wichtige Dinge hinweisen. Das Leerzeichen vor dem &amp;quot;boundary&amp;quot; im Header ist kein Versehen! Es kann tatsächlich dazu führen das eine Mail nicht korrekt dargestellt wird, wenn dieses Leerzeichen fehlt. Ebenso ist es wichtig, dass die &amp;quot;From&amp;quot;-Angabe unmittelbar vor der &amp;quot;MIME-Version&amp;quot; und dem &amp;quot;Content-Type&amp;quot; steht. Vertauscht man die Reihenfolge der Header Angabe, führt das z.B. bei mir dazu, dass ich im Thunderbird nur eine leere Seite als Mail angezeigt bekomme, obwohl der komplette Mail Inhalt im Quelltext einsehbar ist.&lt;br /&gt;
&lt;br /&gt;
Die nächste Zeile ...&lt;br /&gt;
&lt;br /&gt;
 $mailbody  = &amp;quot;This is a multi-part message in MIME format\r\n&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
... steht vor der Nachricht im Head Bereich in der Email. Sie scheint nicht zwingend erforderlich zu sein, aber Mail Clients fügen diese ebenfalls hinzu, wenn man mit z.B. Thunderbird eine Email verschickt. Ich vermute, dass dies aus Gründen der Kompatibilität zu einigen Mail Server geschieht.&lt;br /&gt;
&lt;br /&gt;
Nun folgt der erste Teil unserer Email, der Text.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    $mailbody .= &amp;quot;--&amp;quot; .$trenner. &amp;quot;\r\n&amp;quot;;&lt;br /&gt;
    $mailbody .= &amp;quot;Content-Type: text/html; charset=UTF-8\r\n&amp;quot;;&lt;br /&gt;
    $mailbody .= &amp;quot;Content-Transfer-Encoding: 8bit\r\n\r\n&amp;quot;;&lt;br /&gt;
    $mailbody .= $template. &amp;quot;\r\n\r\n&amp;quot;;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Durch den Trenner teilen wir dem Mail Client mit, dass zwischen diesem Trenner und dem nächsten Trenner, bzw. dem Ende der Mail, ein Teilabschnitt dieser Email steht. Damit der Client weiß um was es sich bei diesem Abschnitt handelt, teilen wir ihm das mithilfe des &amp;quot;Content-Type&amp;quot; und dem &amp;quot;Transfer-Encoding&amp;quot; mit. Durch die Angabe &amp;quot;text/html&amp;quot; weiß nun der Client, dass alles bis zum nächsten Trennen als HTML dargestellt werden soll.&lt;br /&gt;
&lt;br /&gt;
Der nächste Teilabschnitt der Mail ist unser Bild:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    // Anhang anfügen&lt;br /&gt;
    $mailbody .= &amp;quot;--&amp;quot; .$trenner. &amp;quot;\r\n&amp;quot;;&lt;br /&gt;
    $mailbody .= &amp;quot;Content-Type: image/jpeg; name=\&amp;quot;&amp;quot; .$uploadname. &amp;quot;\&amp;quot;\r\n&amp;quot;;&lt;br /&gt;
    $mailbody .= &amp;quot;Content-Transfer-Encoding: base64\r\n&amp;quot;;&lt;br /&gt;
    $mailbody .= &amp;quot;Content-Disposition: attachment; filename=\&amp;quot;&amp;quot; .$uploadname. &amp;quot;\&amp;quot;\r\n\r\n&amp;quot;;&lt;br /&gt;
    $mailbody .= chunk_split( base64_encode( file_get_contents( $_FILES[&amp;#039;datei&amp;#039;][&amp;#039;tmp_name&amp;#039;] ) ) );&lt;br /&gt;
    $mailbody .= &amp;quot;\n&amp;quot;;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Wieder folgt zunächst der Trenner. Der Client stoppt seine HTML Ausgabe an dieser Position und wird ab diesem Punkt ausgeben, was ihm durch den &amp;quot;Content-Type&amp;quot; und das &amp;quot;Transfer-Encoding&amp;quot; aufgetragen wird. Wir sehen nun, dass wir als Content-Type eine JPG Datei ausgeben möchten. Der Name ergibt sich aus dem Rückgabewert der Funktion, die den Upload zuvor überprüft hat. Als Transfer-Encoding wird &amp;quot;base64&amp;quot; angegeben. Diese Angabe ist überaus wichtig um eine korrekte Übertragung der Daten zu gewährleisten. Mit der Angabe &amp;quot;Content-Disposition: attachment;&amp;quot; legen wir fest, dass der Anhang wirklich an die Mail angehängt wird. Eine andere Möglichkeit wäre hier das Einbetten in den Mailtext, indem man als Content-Disposition ein &amp;quot;inline&amp;quot; angibt. Die nächste Zeile ist ziemlich tricky:&lt;br /&gt;
&lt;br /&gt;
 $mailbody .= chunk_split( base64_encode( file_get_contents( $_FILES[&amp;#039;datei&amp;#039;][&amp;#039;tmp_name&amp;#039;] ) ) );&lt;br /&gt;
&lt;br /&gt;
Arbeiten wir uns mal von Innen nach Außen durch, weil hier mehrere Funktionen verschachtelt sind. Mit file_get_contents wird eine Datei als String eingelesen. Dies ist hier möglich, weil diese Funktion seit PHP 4.3 binary safe ist. Als einzulesender Dateiname nehmen wir hier den Name der temporären datei, die durch den Upload auf dem Server gelandet ist. Diese Datei steht nur zu genau diesem Zeitpunkt zur Verfügung. Sobald das Script beendet wird oder eine andere Seite geladen wird, existiert diese Datei nicht mehr. Möchte man diese Datei erst zu einem späteren Zeitpunkt verarbeiten, muß man diese zunächst mit move_uploaded_file an eine andere Position kopieren.&lt;br /&gt;
Da wir nun die Bilddatei als String eingelesen haben, wird er mit base64_encode umgewandelt, damit die Datei beschädigt wird, falls es nicht möglich ist die Mail als 8bit zu übertragen. Es wird also aus Gründen der Kompatibilität gemacht. Anschließend wird der String mit chunk_split so aufbereitet, dass die Zeilenlänge 76 Zeichen nicht übersteigt.&lt;br /&gt;
&lt;br /&gt;
Das war&amp;#039;s! Die Daten können nun wieder mit der mail-Funktion versendet werden. Sollte man mehr als eine Datei anhängen wollen, kann man den letzten Schritt beliebig oft wiederholen. Erst Trenner setzen, dann Art der Daten und Übertragungsmodus angeben, die Datei anhängen, fertig.&lt;br /&gt;
&lt;br /&gt;
==== Beispiel Funktion (SPAM Proofed)====&lt;br /&gt;
(Aus Narda Accredited Calibration)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
function send_acc_mail($rma_num,$arrForm,$arrPartner){&lt;br /&gt;
	global $user_db;&lt;br /&gt;
	global $dbase;&lt;br /&gt;
	global $pass_db;&lt;br /&gt;
	global $database;&lt;br /&gt;
	global $pdf_template;&lt;br /&gt;
	global $mail_template;// not used&lt;br /&gt;
	global $mail_template_txt;// only use this for plaintext message (more secure)&lt;br /&gt;
	global $pdf_css;&lt;br /&gt;
	global $narda_mail;&lt;br /&gt;
	global $admin_mail;&lt;br /&gt;
	global $replyto_mail;&lt;br /&gt;
	$partner_mail = $arrPartner[email];&lt;br /&gt;
&lt;br /&gt;
	$arrMarkers = array_merge($arrForm,$arrPartner,array(&amp;quot;rma_num&amp;quot;=&amp;gt;$rma_num));&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
	// PDF-TEMPLATE&lt;br /&gt;
	$pdf_template = file_get_contents( $pdf_template );&lt;br /&gt;
	$pdf_template = replace_markers($pdf_template,$arrMarkers);&lt;br /&gt;
	// Mail Template&lt;br /&gt;
	$mail_template_txt = file_get_contents( $mail_template_txt );&lt;br /&gt;
	$mail_template_txt = replace_markers($mail_template_txt,$arrMarkers);&lt;br /&gt;
&lt;br /&gt;
	//MAIL&lt;br /&gt;
	// Trenner für multipart mail&lt;br /&gt;
    $mid = md5( time() );&lt;br /&gt;
	$filename = &amp;quot;acc-&amp;quot;.$rma_num;&lt;br /&gt;
	&lt;br /&gt;
    // Anhang generieren&lt;br /&gt;
	include(&amp;quot;lib/mpdf56/mpdf.php&amp;quot;);&lt;br /&gt;
	$mpdf=new mPDF(&amp;#039;c&amp;#039;);&lt;br /&gt;
	$mpdf-&amp;gt;SetDisplayMode(&amp;#039;fullpage&amp;#039;);&lt;br /&gt;
	$stylesheet = file_get_contents($pdf_css);&lt;br /&gt;
	$mpdf-&amp;gt;WriteHTML($stylesheet,1); // 1 -&amp;gt; css/style only and no body/html/text&lt;br /&gt;
	$mpdf-&amp;gt;WriteHTML($pdf_template);&lt;br /&gt;
	$pdf_attachment = chunk_split(base64_encode($mpdf-&amp;gt;Output(&amp;#039;&amp;#039;,&amp;#039;S&amp;#039;)));&lt;br /&gt;
   &lt;br /&gt;
	// Mailheader&lt;br /&gt;
	//$to=$partner_mail;&lt;br /&gt;
	$to=&amp;quot;schlegel@geo-bit.de&amp;quot;;&lt;br /&gt;
	$subject = &amp;quot;Accredited Calibration Request&amp;quot;;&lt;br /&gt;
	$headers .= &amp;#039;Reply-To: &amp;#039;.$replyto_mail.&amp;quot;\r\n&amp;quot;;&lt;br /&gt;
    $headers .= &amp;quot;Return-Path: noreply@&amp;quot; .$_SERVER[&amp;#039;SERVER_NAME&amp;#039;]. &amp;quot;\r\n&amp;quot;;&lt;br /&gt;
	$headers .= &amp;#039;X-Mailer: PHP/&amp;#039;.phpversion().&amp;quot;\r\n&amp;quot;;&lt;br /&gt;
	$headers .=&amp;#039;From: NARDA-STS GmbH &amp;lt;&amp;#039;.$narda_mail.&amp;#039;&amp;gt;&amp;#039;.&amp;quot;\r\n&amp;quot;;&lt;br /&gt;
	$headers .= &amp;#039;Cc:&amp;#039;.$narda_mail.&amp;quot;\n&amp;quot;;&lt;br /&gt;
	$headers .= &amp;#039;Bcc:&amp;#039;.$admin_mail.&amp;quot;\n&amp;quot;;&lt;br /&gt;
	&lt;br /&gt;
	$headers .= &amp;quot;MIME-Version: 1.0\r\n&amp;quot;;&lt;br /&gt;
	$headers .= &amp;quot;Content-Type: multipart/mixed; boundary=\&amp;quot;&amp;quot;.$mid.&amp;quot;\&amp;quot;\r\n\r\n&amp;quot;;&lt;br /&gt;
	$headers .= &amp;quot;This is a multi-part message in MIME format.\r\n&amp;quot;;&lt;br /&gt;
	$headers .= &amp;quot;--&amp;quot;.$mid.&amp;quot;\r\n&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
	// Textpart&lt;br /&gt;
	$headers .= &amp;quot;Content-type:text/plain; charset=iso-8859-1\r\n&amp;quot;;&lt;br /&gt;
	$headers .= &amp;quot;Content-Transfer-Encoding: 7bit\r\n\r\n&amp;quot;;&lt;br /&gt;
    //$headers .= &amp;quot;Content-Type: text/html; charset=UTF-8\r\n&amp;quot;;&lt;br /&gt;
    //$headers .= &amp;quot;Content-Transfer-Encoding: 8bit\r\n\r\n&amp;quot;;&lt;br /&gt;
    $headers .= $mail_template_txt.&amp;quot;\r\n\r\n&amp;quot;;&lt;br /&gt;
	$headers .= &amp;quot;--&amp;quot;.$mid.&amp;quot;\r\n&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
	//pdf-att&lt;br /&gt;
	$headers .= &amp;quot;Content-Type: application/pdf; name=\&amp;quot;&amp;quot;.$filename.&amp;quot;\&amp;quot;\r\n&amp;quot;;&lt;br /&gt;
	$headers .= &amp;quot;Content-Transfer-Encoding: base64\r\n&amp;quot;;&lt;br /&gt;
	$headers .= &amp;quot;Content-Disposition: attachment; filename=\&amp;quot;&amp;quot;.$filename.&amp;quot;\&amp;quot;\r\n\r\n&amp;quot;;&lt;br /&gt;
	$headers .= $pdf_attachment.&amp;quot;\r\n\r\n&amp;quot;;&lt;br /&gt;
	$headers .= &amp;quot;--&amp;quot;.$mid.&amp;quot;--&amp;quot;;&lt;br /&gt;
	&lt;br /&gt;
	$addParams = &amp;#039;-fnoreply@&amp;#039;.$_SERVER[&amp;#039;SERVER_NAME&amp;#039;];&lt;br /&gt;
	$success = mail($to, $subject, $body, $headers,$addParams);&lt;br /&gt;
	return $success;&lt;br /&gt;
	//echo($headers);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== E-Mail mit Empfangsbestätigung ===&lt;br /&gt;
&lt;br /&gt;
Eine Empfangsbestätigung verschicken&lt;br /&gt;
&lt;br /&gt;
Das ist genauso einfach wie das verschicken einer ganz einfachen Textmail. Wie wir ja bereits gehört haben, gibt die mail-Funktion bei Erfolg ein TRUE zurück. Damit können wir also feststellen, ob die Nachricht des Benutzers an uns übermittelt wurde und falls ja, schicken wir ihm eine Mail als Bestätigung. Das sieht in etwa so aus:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    if (@mail( $empfaenger, htmlspecialchars( $betreff ), $mailbody, $mailheader ))&lt;br /&gt;
    {&lt;br /&gt;
        // Bei erfolgreichem Versand Danke-Seite anzeigen&lt;br /&gt;
        $mailheader  = &amp;quot;From: Firma Max Mustermann&amp;lt;mustermann@domain.tld&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
        $mailheader .= &amp;quot;Reply-To: Firma Max Mustermann&amp;lt;mustermann@domain.tld&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
        $mailheader .= &amp;quot;Return-Path: noreply@&amp;quot; .$_SERVER[&amp;#039;SERVER_NAME&amp;#039;]. &amp;quot;\r\n&amp;quot;;&lt;br /&gt;
        $mailheader .= &amp;quot;MIME-Version: 1.0\r\n&amp;quot;;&lt;br /&gt;
        $mailheader .= &amp;quot;Content-Type: text/plain; charset=UTF-8\r\n&amp;quot;;&lt;br /&gt;
        $mailheader .= &amp;quot;Content-Transfer-Encoding: 7bit\r\n&amp;quot;;&lt;br /&gt;
        $mailheader .= &amp;quot;Message-ID: &amp;lt;&amp;quot; .time(). &amp;quot; noreply@&amp;quot; .$_SERVER[&amp;#039;SERVER_NAME&amp;#039;]. &amp;quot;&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
        $mailheader .= &amp;quot;X-Mailer: PHP v&amp;quot; .phpversion(). &amp;quot;\r\n\r\n&amp;quot;;&lt;br /&gt;
 &lt;br /&gt;
        // Inhalt der Bestätigung&lt;br /&gt;
        $mailbody = &amp;#039;Vielen Dank für Ihre Email. Wir werden uns in Kürze bei Ihnen melden.&amp;#039;;&lt;br /&gt;
 &lt;br /&gt;
        // Bestätigung verschicken&lt;br /&gt;
        if (@mail( $email, &amp;quot;Die Firma Max Mustermann bedankt sich&amp;quot;, $mailbody, $mailheader ))&lt;br /&gt;
        {&lt;br /&gt;
            // Bestätigung wurde verschickt&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Das ist im Prinzip der selbe Code wie zuvor in der Text Mail. Es werden lediglich einige Kleinigkeiten im Mail Header angepasst, damit der Benutzer auch weiß, wer ihm schreibt und wohin er antworten kann.&lt;br /&gt;
&lt;br /&gt;
Damit sollten die meisten Fragen zum Thema &amp;quot;Wie versendet man eine Email mit PHP&amp;quot; geklärt sein. Wer Fragen oder Anregungen hat, kann sie gerne in diesem Thread stellen.&lt;/div&gt;</summary>
		<author><name>85.216.68.159</name></author>
	</entry>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=PHP_-_Upload_Formular&amp;diff=21362</id>
		<title>PHP - Upload Formular</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=PHP_-_Upload_Formular&amp;diff=21362"/>
		<updated>2016-01-28T18:18:51Z</updated>

		<summary type="html">&lt;p&gt;85.216.68.159: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Beispiel 1 - Upload Formular ohne AJAX ==&lt;br /&gt;
http://php.net/manual/de/features.file-upload.post-method.php&lt;br /&gt;
=== HTML ===&lt;br /&gt;
Formular mit &lt;br /&gt;
 enctype=&amp;quot;multipart/form-data&amp;quot;&lt;br /&gt;
und &lt;br /&gt;
 &amp;lt;input type=&amp;quot;file&amp;quot; name=&amp;quot;uploaded_file&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html5&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE html&amp;gt;&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
&amp;lt;form method=&amp;quot;POST&amp;quot; name=&amp;quot;email_form_with_php&amp;quot;&lt;br /&gt;
action=&amp;quot;upload.php&amp;quot; enctype=&amp;quot;multipart/form-data&amp;quot;&amp;gt; &lt;br /&gt;
 &lt;br /&gt;
&amp;lt;label for=&amp;#039;name&amp;#039;&amp;gt;Name: &amp;lt;/label&amp;gt;&lt;br /&gt;
&amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;name&amp;quot; &amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;label for=&amp;#039;email&amp;#039;&amp;gt;Email: &amp;lt;/label&amp;gt;&lt;br /&gt;
&amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;email&amp;quot; &amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;label for=&amp;#039;message&amp;#039;&amp;gt;Message:&amp;lt;/label&amp;gt;&lt;br /&gt;
&amp;lt;textarea name=&amp;quot;message&amp;quot;&amp;gt;&amp;lt;/textarea&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;label for=&amp;#039;uploaded_file&amp;#039;&amp;gt;Select A File To Upload:&amp;lt;/label&amp;gt;&lt;br /&gt;
&amp;lt;input type=&amp;quot;file&amp;quot; name=&amp;quot;uploaded_file&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;input type=&amp;quot;submit&amp;quot; value=&amp;quot;Submit&amp;quot; name=&amp;#039;submit&amp;#039;&amp;gt;&lt;br /&gt;
&amp;lt;/form&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Das maxfilesize feld ist hier nicht drin. Es ersetzt keine servervalidierung hilft soll aber dem user schon vor dem upload helfen zu erkennen, wenn er ein zu großes File nimmt - theoretisch denn in der Praxis unterstützt es kein Browser.&lt;br /&gt;
&lt;br /&gt;
=== PHP ===&lt;br /&gt;
Auf die frisch hochgeladenen Dateien kann über die Servervariable $_FILES zugegriffen werden&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php &lt;br /&gt;
echo(&amp;quot;&amp;lt;pre&amp;gt;&amp;quot;);&lt;br /&gt;
$upload_ok = 1;&lt;br /&gt;
$errors = &amp;#039;&amp;#039;;&lt;br /&gt;
$strDate=date(&amp;quot;Y-m-d_H:i:s_&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
/***** CONFIGURATION PART  *****/&lt;br /&gt;
$actual_path = dirname($_SERVER[&amp;quot;SCRIPT_FILENAME&amp;quot;]);&lt;br /&gt;
$upload_folder = $actual_path.&amp;#039;/uploads/&amp;#039;;&lt;br /&gt;
$max_allowed_file_size = 10000; // size in KB&lt;br /&gt;
$allowed_extensions = array(&amp;quot;jpg&amp;quot;, &amp;quot;jpeg&amp;quot;, &amp;quot;gif&amp;quot;, &amp;quot;bmp&amp;quot;, &amp;quot;png&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
//FILE INFOS&lt;br /&gt;
/*&lt;br /&gt;
echo(&amp;#039;$_FILES Variable&amp;#039;);&lt;br /&gt;
var_dump($_FILES);&lt;br /&gt;
echo(&amp;#039;$_SERVER Variable&amp;#039;);&lt;br /&gt;
var_dump($_SERVER);&lt;br /&gt;
*/&lt;br /&gt;
&lt;br /&gt;
$name_of_uploaded_file = $strDate.basename($_FILES[&amp;#039;uploaded_file&amp;#039;][&amp;#039;name&amp;#039;]);&lt;br /&gt;
 &lt;br /&gt;
//get the file extension of the file&lt;br /&gt;
$type_of_uploaded_file =&lt;br /&gt;
	substr($name_of_uploaded_file,&lt;br /&gt;
	strrpos($name_of_uploaded_file, &amp;#039;.&amp;#039;) + 1);&lt;br /&gt;
 &lt;br /&gt;
$size_of_uploaded_file =&lt;br /&gt;
	$_FILES[&amp;quot;uploaded_file&amp;quot;][&amp;quot;size&amp;quot;]/1024;//size in KBs&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/***** VALIDATE UPLOADED FILE *****/&lt;br /&gt;
//Size validation&lt;br /&gt;
if($size_of_uploaded_file &amp;gt; $max_allowed_file_size )&lt;br /&gt;
{&lt;br /&gt;
	$errors .= &amp;quot;&amp;lt;br&amp;gt; Size of file should be less than $max_allowed_file_size&amp;quot;;&lt;br /&gt;
	$upload_ok = 0;&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
//File extension validation&lt;br /&gt;
$allowed_ext = false;&lt;br /&gt;
for($i=0; $i &amp;lt; sizeof($allowed_extensions); $i++)&lt;br /&gt;
{&lt;br /&gt;
	if(strcasecmp($allowed_extensions[$i],$type_of_uploaded_file) == 0)&lt;br /&gt;
	{&lt;br /&gt;
		$allowed_ext = true;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
if(!$allowed_ext)&lt;br /&gt;
{&lt;br /&gt;
	$errors .= &amp;quot;&amp;lt;br&amp;gt; The uploaded file is not supported file type. &amp;quot;.&lt;br /&gt;
	&amp;quot; Only the following file types are supported: &amp;quot;.implode(&amp;#039;,&amp;#039;,$allowed_extensions);&lt;br /&gt;
	$upload_ok = 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/***** COPY TEMPORARY UPLOADED FILE *****/&lt;br /&gt;
$target_path_and_name = $upload_folder . $name_of_uploaded_file;&lt;br /&gt;
$tmp_path = $_FILES[&amp;quot;uploaded_file&amp;quot;][&amp;quot;tmp_name&amp;quot;];&lt;br /&gt;
if($upload_ok &amp;amp;&amp;amp; is_uploaded_file($tmp_path))&lt;br /&gt;
{&lt;br /&gt;
	if(!copy($tmp_path,$target_path_and_name))&lt;br /&gt;
	{&lt;br /&gt;
		$errors .= &amp;#039;&amp;lt;br&amp;gt;error while copying the uploaded file&amp;#039;;&lt;br /&gt;
		$upload_ok = 0;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
if (!$upload_ok) echo $errors;&lt;br /&gt;
else echo(&amp;quot;upload ok&amp;quot;);&lt;br /&gt;
echo(&amp;quot;&amp;lt;/pre&amp;gt;&amp;quot;);&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Beispiel 2 - Upload Formular mit Mailversand als Attachment==&lt;br /&gt;
PHP Ergänzung:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
/***** SEND MAIL *****/&lt;br /&gt;
$to = &amp;#039;&amp;quot;Stephan Schlegel&amp;quot; &amp;lt;schlegel@geo-bit.de&amp;gt;&amp;#039;;&lt;br /&gt;
print_r($to);&lt;br /&gt;
$subject = &amp;#039;TESTMAIL&amp;#039;;&lt;br /&gt;
$body = &amp;#039;Testmail mit Attachment&amp;#039;;&lt;br /&gt;
$filename = $name_of_uploaded_file;&lt;br /&gt;
&lt;br /&gt;
if($upload_ok){&lt;br /&gt;
	if(sendMail($to,$subject,$body,$tmp_path,$filename)){&lt;br /&gt;
		echo(&amp;quot;Mail wurde versendet&amp;quot;);&lt;br /&gt;
	}else{&lt;br /&gt;
		echo(&amp;quot;Mailversand nicht erfolgreich.&amp;quot;);&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function sendMail($to,$subject,$body,$att,$filename){&lt;br /&gt;
	$success=1;&lt;br /&gt;
&lt;br /&gt;
	$from_mail = &amp;#039;noreply@&amp;#039;.$_SERVER[&amp;#039;SERVER_NAME&amp;#039;];&lt;br /&gt;
	$from = &amp;#039;&amp;quot;Testmailer&amp;quot; &amp;lt;&amp;#039;.$from_mail.&amp;#039;&amp;gt;&amp;#039;;&lt;br /&gt;
	$headers=&amp;quot;&amp;quot;;&lt;br /&gt;
	$mid = md5( time() ); // Multipart Mail ID (Trenner)&lt;br /&gt;
	$attachment = chunk_split( base64_encode( file_get_contents( $att ) ) );&lt;br /&gt;
	&lt;br /&gt;
	$headers .= &amp;#039;X-Mailer: PHP/&amp;#039;.phpversion().&amp;quot;\r\n&amp;quot;;&lt;br /&gt;
	$headers .=&amp;#039;From: &amp;#039;.$from.&amp;quot;\r\n&amp;quot;;&lt;br /&gt;
	$headers .= &amp;quot;MIME-Version: 1.0\r\n&amp;quot;;&lt;br /&gt;
	$headers .= &amp;quot;Content-Type: multipart/mixed; boundary=\&amp;quot;&amp;quot;.$mid.&amp;quot;\&amp;quot;\r\n\r\n&amp;quot;;&lt;br /&gt;
	$headers .= &amp;quot;This is a multi-part message in MIME format.\r\n&amp;quot;;&lt;br /&gt;
	$headers .= &amp;quot;--&amp;quot;.$mid.&amp;quot;\r\n&amp;quot;;&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
	//attachment&lt;br /&gt;
	$content_type= getMimeType($att);&lt;br /&gt;
	$headers .= &amp;quot;Content-Type: &amp;quot;.$content_type.&amp;quot;; name=\&amp;quot;&amp;quot;.$filename.&amp;quot;\&amp;quot;\r\n&amp;quot;;&lt;br /&gt;
	$headers .= &amp;quot;Content-Transfer-Encoding: base64\r\n&amp;quot;;&lt;br /&gt;
	$headers .= &amp;quot;Content-Disposition: attachment; filename=\&amp;quot;&amp;quot;.$filename.&amp;quot;\&amp;quot;\r\n\r\n&amp;quot;;&lt;br /&gt;
	$headers .= $attachment.&amp;quot;\r\n\r\n&amp;quot;;&lt;br /&gt;
	$headers .= &amp;quot;--&amp;quot;.$mid.&amp;quot;--&amp;quot;;&lt;br /&gt;
	$addParams = &amp;#039;-f&amp;#039;.$from_mail;&lt;br /&gt;
	print_r($addParams);&lt;br /&gt;
	$success = mail($to, $subject, $body, $headers,$addParams);&lt;br /&gt;
		return $success;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function getMimeType($file_abspath_and_name){&lt;br /&gt;
	$mimeType=&amp;quot;&amp;quot;;&lt;br /&gt;
	$finfo = finfo_open(FILEINFO_MIME_TYPE);&lt;br /&gt;
	$mimeType = finfo_file($finfo, $file_abspath_and_name);&lt;br /&gt;
	finfo_close($finfo);&lt;br /&gt;
	return $mimeType;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// alternative Funktion zu getMimeType wenn PHP Version zu niedrig, buggy oder deaktiviert&lt;br /&gt;
function mime_type($file) {&lt;br /&gt;
&lt;br /&gt;
    // there&amp;#039;s a bug that doesn&amp;#039;t properly detect&lt;br /&gt;
    // the mime type of css files&lt;br /&gt;
    // https://bugs.php.net/bug.php?id=53035&lt;br /&gt;
    // so the following is used, instead&lt;br /&gt;
    // src: http://www.freeformatter.com/mime-types-list.html#mime-types-list&lt;br /&gt;
&lt;br /&gt;
    $mime_type = array(&lt;br /&gt;
        &amp;quot;3dml&amp;quot; =&amp;gt; &amp;quot;text/vnd.in3d.3dml&amp;quot;,&lt;br /&gt;
        &amp;quot;3g2&amp;quot; =&amp;gt; &amp;quot;video/3gpp2&amp;quot;,&lt;br /&gt;
        &amp;quot;3gp&amp;quot; =&amp;gt; &amp;quot;video/3gpp&amp;quot;,&lt;br /&gt;
        &amp;quot;7z&amp;quot; =&amp;gt; &amp;quot;application/x-7z-compressed&amp;quot;,&lt;br /&gt;
        &amp;quot;aab&amp;quot; =&amp;gt; &amp;quot;application/x-authorware-bin&amp;quot;,&lt;br /&gt;
        &amp;quot;aac&amp;quot; =&amp;gt; &amp;quot;audio/x-aac&amp;quot;,&lt;br /&gt;
        &amp;quot;aam&amp;quot; =&amp;gt; &amp;quot;application/x-authorware-map&amp;quot;,&lt;br /&gt;
        &amp;quot;aas&amp;quot; =&amp;gt; &amp;quot;application/x-authorware-seg&amp;quot;,&lt;br /&gt;
        &amp;quot;abw&amp;quot; =&amp;gt; &amp;quot;application/x-abiword&amp;quot;,&lt;br /&gt;
        &amp;quot;ac&amp;quot; =&amp;gt; &amp;quot;application/pkix-attr-cert&amp;quot;,&lt;br /&gt;
        &amp;quot;acc&amp;quot; =&amp;gt; &amp;quot;application/vnd.americandynamics.acc&amp;quot;,&lt;br /&gt;
        &amp;quot;ace&amp;quot; =&amp;gt; &amp;quot;application/x-ace-compressed&amp;quot;,&lt;br /&gt;
        &amp;quot;acu&amp;quot; =&amp;gt; &amp;quot;application/vnd.acucobol&amp;quot;,&lt;br /&gt;
        &amp;quot;adp&amp;quot; =&amp;gt; &amp;quot;audio/adpcm&amp;quot;,&lt;br /&gt;
        &amp;quot;aep&amp;quot; =&amp;gt; &amp;quot;application/vnd.audiograph&amp;quot;,&lt;br /&gt;
        &amp;quot;afp&amp;quot; =&amp;gt; &amp;quot;application/vnd.ibm.modcap&amp;quot;,&lt;br /&gt;
        &amp;quot;ahead&amp;quot; =&amp;gt; &amp;quot;application/vnd.ahead.space&amp;quot;,&lt;br /&gt;
        &amp;quot;ai&amp;quot; =&amp;gt; &amp;quot;application/postscript&amp;quot;,&lt;br /&gt;
        &amp;quot;aif&amp;quot; =&amp;gt; &amp;quot;audio/x-aiff&amp;quot;,&lt;br /&gt;
        &amp;quot;air&amp;quot; =&amp;gt; &amp;quot;application/vnd.adobe.air-application-installer-package+zip&amp;quot;,&lt;br /&gt;
        &amp;quot;ait&amp;quot; =&amp;gt; &amp;quot;application/vnd.dvb.ait&amp;quot;,&lt;br /&gt;
        &amp;quot;ami&amp;quot; =&amp;gt; &amp;quot;application/vnd.amiga.ami&amp;quot;,&lt;br /&gt;
        &amp;quot;apk&amp;quot; =&amp;gt; &amp;quot;application/vnd.android.package-archive&amp;quot;,&lt;br /&gt;
        &amp;quot;application&amp;quot; =&amp;gt; &amp;quot;application/x-ms-application&amp;quot;,&lt;br /&gt;
        // etc...&lt;br /&gt;
        // truncated due to Stack Overflow&amp;#039;s character limit in posts&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
    $extension = \strtolower(\pathinfo($file, \PATHINFO_EXTENSION));&lt;br /&gt;
&lt;br /&gt;
    if (isset($mime_type[$extension])) {&lt;br /&gt;
        return $mime_type[$extension];&lt;br /&gt;
    } else {&lt;br /&gt;
        throw new \Exception(&amp;quot;Unknown file type&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>85.216.68.159</name></author>
	</entry>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=PHP_-_Upload_Formular&amp;diff=21361</id>
		<title>PHP - Upload Formular</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=PHP_-_Upload_Formular&amp;diff=21361"/>
		<updated>2016-01-28T16:52:47Z</updated>

		<summary type="html">&lt;p&gt;85.216.68.159: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Beispiel 1 - Upload Formular ohne AJAX ==&lt;br /&gt;
http://php.net/manual/de/features.file-upload.post-method.php&lt;br /&gt;
=== HTML ===&lt;br /&gt;
Formular mit &lt;br /&gt;
 enctype=&amp;quot;multipart/form-data&amp;quot;&lt;br /&gt;
und &lt;br /&gt;
 &amp;lt;input type=&amp;quot;file&amp;quot; name=&amp;quot;uploaded_file&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html5&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE html&amp;gt;&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
&amp;lt;form method=&amp;quot;POST&amp;quot; name=&amp;quot;email_form_with_php&amp;quot;&lt;br /&gt;
action=&amp;quot;upload.php&amp;quot; enctype=&amp;quot;multipart/form-data&amp;quot;&amp;gt; &lt;br /&gt;
 &lt;br /&gt;
&amp;lt;label for=&amp;#039;name&amp;#039;&amp;gt;Name: &amp;lt;/label&amp;gt;&lt;br /&gt;
&amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;name&amp;quot; &amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;label for=&amp;#039;email&amp;#039;&amp;gt;Email: &amp;lt;/label&amp;gt;&lt;br /&gt;
&amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;email&amp;quot; &amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;label for=&amp;#039;message&amp;#039;&amp;gt;Message:&amp;lt;/label&amp;gt;&lt;br /&gt;
&amp;lt;textarea name=&amp;quot;message&amp;quot;&amp;gt;&amp;lt;/textarea&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;label for=&amp;#039;uploaded_file&amp;#039;&amp;gt;Select A File To Upload:&amp;lt;/label&amp;gt;&lt;br /&gt;
&amp;lt;input type=&amp;quot;file&amp;quot; name=&amp;quot;uploaded_file&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;input type=&amp;quot;submit&amp;quot; value=&amp;quot;Submit&amp;quot; name=&amp;#039;submit&amp;#039;&amp;gt;&lt;br /&gt;
&amp;lt;/form&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Das maxfilesize feld ist hier nicht drin. Es ersetzt keine servervalidierung hilft soll aber dem user schon vor dem upload helfen zu erkennen, wenn er ein zu großes File nimmt - theoretisch denn in der Praxis unterstützt es kein Browser.&lt;br /&gt;
&lt;br /&gt;
=== PHP ===&lt;br /&gt;
Auf die frisch hochgeladenen Dateien kann über die Servervariable $_FILES zugegriffen werden&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php &lt;br /&gt;
echo(&amp;quot;&amp;lt;pre&amp;gt;&amp;quot;);&lt;br /&gt;
$upload_ok = 1;&lt;br /&gt;
$errors = &amp;#039;&amp;#039;;&lt;br /&gt;
$strDate=date(&amp;quot;Y-m-d_H:i:s_&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
/***** CONFIGURATION PART  *****/&lt;br /&gt;
$actual_path = dirname($_SERVER[&amp;quot;SCRIPT_FILENAME&amp;quot;]);&lt;br /&gt;
$upload_folder = $actual_path.&amp;#039;/uploads/&amp;#039;;&lt;br /&gt;
$max_allowed_file_size = 10000; // size in KB&lt;br /&gt;
$allowed_extensions = array(&amp;quot;jpg&amp;quot;, &amp;quot;jpeg&amp;quot;, &amp;quot;gif&amp;quot;, &amp;quot;bmp&amp;quot;, &amp;quot;png&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
//FILE INFOS&lt;br /&gt;
/*&lt;br /&gt;
echo(&amp;#039;$_FILES Variable&amp;#039;);&lt;br /&gt;
var_dump($_FILES);&lt;br /&gt;
echo(&amp;#039;$_SERVER Variable&amp;#039;);&lt;br /&gt;
var_dump($_SERVER);&lt;br /&gt;
*/&lt;br /&gt;
&lt;br /&gt;
$name_of_uploaded_file = $strDate.basename($_FILES[&amp;#039;uploaded_file&amp;#039;][&amp;#039;name&amp;#039;]);&lt;br /&gt;
 &lt;br /&gt;
//get the file extension of the file&lt;br /&gt;
$type_of_uploaded_file =&lt;br /&gt;
	substr($name_of_uploaded_file,&lt;br /&gt;
	strrpos($name_of_uploaded_file, &amp;#039;.&amp;#039;) + 1);&lt;br /&gt;
 &lt;br /&gt;
$size_of_uploaded_file =&lt;br /&gt;
	$_FILES[&amp;quot;uploaded_file&amp;quot;][&amp;quot;size&amp;quot;]/1024;//size in KBs&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/***** VALIDATE UPLOADED FILE *****/&lt;br /&gt;
//Size validation&lt;br /&gt;
if($size_of_uploaded_file &amp;gt; $max_allowed_file_size )&lt;br /&gt;
{&lt;br /&gt;
	$errors .= &amp;quot;&amp;lt;br&amp;gt; Size of file should be less than $max_allowed_file_size&amp;quot;;&lt;br /&gt;
	$upload_ok = 0;&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
//File extension validation&lt;br /&gt;
$allowed_ext = false;&lt;br /&gt;
for($i=0; $i &amp;lt; sizeof($allowed_extensions); $i++)&lt;br /&gt;
{&lt;br /&gt;
	if(strcasecmp($allowed_extensions[$i],$type_of_uploaded_file) == 0)&lt;br /&gt;
	{&lt;br /&gt;
		$allowed_ext = true;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
if(!$allowed_ext)&lt;br /&gt;
{&lt;br /&gt;
	$errors .= &amp;quot;&amp;lt;br&amp;gt; The uploaded file is not supported file type. &amp;quot;.&lt;br /&gt;
	&amp;quot; Only the following file types are supported: &amp;quot;.implode(&amp;#039;,&amp;#039;,$allowed_extensions);&lt;br /&gt;
	$upload_ok = 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/***** COPY TEMPORARY UPLOADED FILE *****/&lt;br /&gt;
$target_path_and_name = $upload_folder . $name_of_uploaded_file;&lt;br /&gt;
$tmp_path = $_FILES[&amp;quot;uploaded_file&amp;quot;][&amp;quot;tmp_name&amp;quot;];&lt;br /&gt;
if($upload_ok &amp;amp;&amp;amp; is_uploaded_file($tmp_path))&lt;br /&gt;
{&lt;br /&gt;
	if(!copy($tmp_path,$target_path_and_name))&lt;br /&gt;
	{&lt;br /&gt;
		$errors .= &amp;#039;&amp;lt;br&amp;gt;error while copying the uploaded file&amp;#039;;&lt;br /&gt;
		$upload_ok = 0;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
if (!$upload_ok) echo $errors;&lt;br /&gt;
else echo(&amp;quot;upload ok&amp;quot;);&lt;br /&gt;
echo(&amp;quot;&amp;lt;/pre&amp;gt;&amp;quot;);&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Beispiel 2 - Upload Formular mit Mailversandt ==&lt;br /&gt;
PHP Ergänzung:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>85.216.68.159</name></author>
	</entry>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=PHP_-_Upload_Formular&amp;diff=21360</id>
		<title>PHP - Upload Formular</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=PHP_-_Upload_Formular&amp;diff=21360"/>
		<updated>2016-01-28T16:51:31Z</updated>

		<summary type="html">&lt;p&gt;85.216.68.159: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Beispiel 1 - ohne AJAX ==&lt;br /&gt;
http://php.net/manual/de/features.file-upload.post-method.php&lt;br /&gt;
=== HTML ===&lt;br /&gt;
Formular mit &lt;br /&gt;
 enctype=&amp;quot;multipart/form-data&amp;quot;&lt;br /&gt;
und &lt;br /&gt;
 &amp;lt;input type=&amp;quot;file&amp;quot; name=&amp;quot;uploaded_file&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html5&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE html&amp;gt;&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
&amp;lt;form method=&amp;quot;POST&amp;quot; name=&amp;quot;email_form_with_php&amp;quot;&lt;br /&gt;
action=&amp;quot;upload.php&amp;quot; enctype=&amp;quot;multipart/form-data&amp;quot;&amp;gt; &lt;br /&gt;
 &lt;br /&gt;
&amp;lt;label for=&amp;#039;name&amp;#039;&amp;gt;Name: &amp;lt;/label&amp;gt;&lt;br /&gt;
&amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;name&amp;quot; &amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;label for=&amp;#039;email&amp;#039;&amp;gt;Email: &amp;lt;/label&amp;gt;&lt;br /&gt;
&amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;email&amp;quot; &amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;label for=&amp;#039;message&amp;#039;&amp;gt;Message:&amp;lt;/label&amp;gt;&lt;br /&gt;
&amp;lt;textarea name=&amp;quot;message&amp;quot;&amp;gt;&amp;lt;/textarea&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;label for=&amp;#039;uploaded_file&amp;#039;&amp;gt;Select A File To Upload:&amp;lt;/label&amp;gt;&lt;br /&gt;
&amp;lt;input type=&amp;quot;file&amp;quot; name=&amp;quot;uploaded_file&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;input type=&amp;quot;submit&amp;quot; value=&amp;quot;Submit&amp;quot; name=&amp;#039;submit&amp;#039;&amp;gt;&lt;br /&gt;
&amp;lt;/form&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Das maxfilesize feld ist hier nicht drin. Es ersetzt keine servervalidierung hilft soll aber dem user schon vor dem upload helfen zu erkennen, wenn er ein zu großes File nimmt - theoretisch denn in der Praxis unterstützt es kein Browser.&lt;br /&gt;
&lt;br /&gt;
=== PHP ===&lt;br /&gt;
Auf die frisch hochgeladenen Dateien kann über die Servervariable $_FILES zugegriffen werden&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php &lt;br /&gt;
echo(&amp;quot;&amp;lt;pre&amp;gt;&amp;quot;);&lt;br /&gt;
$upload_ok = 1;&lt;br /&gt;
$errors = &amp;#039;&amp;#039;;&lt;br /&gt;
$strDate=date(&amp;quot;Y-m-d_H:i:s_&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
/***** CONFIGURATION PART  *****/&lt;br /&gt;
$actual_path = dirname($_SERVER[&amp;quot;SCRIPT_FILENAME&amp;quot;]);&lt;br /&gt;
$upload_folder = $actual_path.&amp;#039;/uploads/&amp;#039;;&lt;br /&gt;
$max_allowed_file_size = 10000; // size in KB&lt;br /&gt;
$allowed_extensions = array(&amp;quot;jpg&amp;quot;, &amp;quot;jpeg&amp;quot;, &amp;quot;gif&amp;quot;, &amp;quot;bmp&amp;quot;, &amp;quot;png&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
//FILE INFOS&lt;br /&gt;
/*&lt;br /&gt;
echo(&amp;#039;$_FILES Variable&amp;#039;);&lt;br /&gt;
var_dump($_FILES);&lt;br /&gt;
echo(&amp;#039;$_SERVER Variable&amp;#039;);&lt;br /&gt;
var_dump($_SERVER);&lt;br /&gt;
*/&lt;br /&gt;
&lt;br /&gt;
$name_of_uploaded_file = $strDate.basename($_FILES[&amp;#039;uploaded_file&amp;#039;][&amp;#039;name&amp;#039;]);&lt;br /&gt;
 &lt;br /&gt;
//get the file extension of the file&lt;br /&gt;
$type_of_uploaded_file =&lt;br /&gt;
	substr($name_of_uploaded_file,&lt;br /&gt;
	strrpos($name_of_uploaded_file, &amp;#039;.&amp;#039;) + 1);&lt;br /&gt;
 &lt;br /&gt;
$size_of_uploaded_file =&lt;br /&gt;
	$_FILES[&amp;quot;uploaded_file&amp;quot;][&amp;quot;size&amp;quot;]/1024;//size in KBs&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/***** VALIDATE UPLOADED FILE *****/&lt;br /&gt;
//Size validation&lt;br /&gt;
if($size_of_uploaded_file &amp;gt; $max_allowed_file_size )&lt;br /&gt;
{&lt;br /&gt;
	$errors .= &amp;quot;&amp;lt;br&amp;gt; Size of file should be less than $max_allowed_file_size&amp;quot;;&lt;br /&gt;
	$upload_ok = 0;&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
//File extension validation&lt;br /&gt;
$allowed_ext = false;&lt;br /&gt;
for($i=0; $i &amp;lt; sizeof($allowed_extensions); $i++)&lt;br /&gt;
{&lt;br /&gt;
	if(strcasecmp($allowed_extensions[$i],$type_of_uploaded_file) == 0)&lt;br /&gt;
	{&lt;br /&gt;
		$allowed_ext = true;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
if(!$allowed_ext)&lt;br /&gt;
{&lt;br /&gt;
	$errors .= &amp;quot;&amp;lt;br&amp;gt; The uploaded file is not supported file type. &amp;quot;.&lt;br /&gt;
	&amp;quot; Only the following file types are supported: &amp;quot;.implode(&amp;#039;,&amp;#039;,$allowed_extensions);&lt;br /&gt;
	$upload_ok = 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/***** COPY TEMPORARY UPLOADED FILE *****/&lt;br /&gt;
$target_path_and_name = $upload_folder . $name_of_uploaded_file;&lt;br /&gt;
$tmp_path = $_FILES[&amp;quot;uploaded_file&amp;quot;][&amp;quot;tmp_name&amp;quot;];&lt;br /&gt;
if($upload_ok &amp;amp;&amp;amp; is_uploaded_file($tmp_path))&lt;br /&gt;
{&lt;br /&gt;
	if(!copy($tmp_path,$target_path_and_name))&lt;br /&gt;
	{&lt;br /&gt;
		$errors .= &amp;#039;&amp;lt;br&amp;gt;error while copying the uploaded file&amp;#039;;&lt;br /&gt;
		$upload_ok = 0;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
if (!$upload_ok) echo $errors;&lt;br /&gt;
else echo(&amp;quot;upload ok&amp;quot;);&lt;br /&gt;
echo(&amp;quot;&amp;lt;/pre&amp;gt;&amp;quot;);&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>85.216.68.159</name></author>
	</entry>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=PHP_-_Upload_Formular&amp;diff=21358</id>
		<title>PHP - Upload Formular</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=PHP_-_Upload_Formular&amp;diff=21358"/>
		<updated>2016-01-28T11:01:38Z</updated>

		<summary type="html">&lt;p&gt;85.216.68.159: Die Seite wurde neu angelegt: „Formular mit   enctype=&amp;quot;multipart/form-data&amp;quot; und   &amp;lt;input type=&amp;quot;file&amp;quot; name=&amp;quot;uploaded_file&amp;quot;&amp;gt; &amp;lt;syntaxhighlight lang=&amp;quot;html5&amp;quot;&amp;gt; &amp;lt;form method=&amp;quot;POST&amp;quot; name=&amp;quot;email_form…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Formular mit &lt;br /&gt;
 enctype=&amp;quot;multipart/form-data&amp;quot;&lt;br /&gt;
und &lt;br /&gt;
 &amp;lt;input type=&amp;quot;file&amp;quot; name=&amp;quot;uploaded_file&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html5&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;form method=&amp;quot;POST&amp;quot; name=&amp;quot;email_form_with_php&amp;quot;&lt;br /&gt;
action=&amp;quot;php-form-action.php&amp;quot; enctype=&amp;quot;multipart/form-data&amp;quot;&amp;gt; &lt;br /&gt;
 &lt;br /&gt;
&amp;lt;label for=&amp;#039;name&amp;#039;&amp;gt;Name: &amp;lt;/label&amp;gt;&lt;br /&gt;
&amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;name&amp;quot; &amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;label for=&amp;#039;email&amp;#039;&amp;gt;Email: &amp;lt;/label&amp;gt;&lt;br /&gt;
&amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;email&amp;quot; &amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;label for=&amp;#039;message&amp;#039;&amp;gt;Message:&amp;lt;/label&amp;gt;&lt;br /&gt;
&amp;lt;textarea name=&amp;quot;message&amp;quot;&amp;gt;&amp;lt;/textarea&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;label for=&amp;#039;uploaded_file&amp;#039;&amp;gt;Select A File To Upload:&amp;lt;/label&amp;gt;&lt;br /&gt;
&amp;lt;input type=&amp;quot;file&amp;quot; name=&amp;quot;uploaded_file&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;input type=&amp;quot;submit&amp;quot; value=&amp;quot;Submit&amp;quot; name=&amp;#039;submit&amp;#039;&amp;gt;&lt;br /&gt;
&amp;lt;/form&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
PHP&lt;/div&gt;</summary>
		<author><name>85.216.68.159</name></author>
	</entry>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=PHP_-_E-Mail_versenden&amp;diff=21357</id>
		<title>PHP - E-Mail versenden</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=PHP_-_E-Mail_versenden&amp;diff=21357"/>
		<updated>2016-01-28T10:27:50Z</updated>

		<summary type="html">&lt;p&gt;85.216.68.159: /* E-Mail mit CSS und Anhang */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
 http://www.a2hosting.com/kb/developer-corner/php/using-php-to-send-e-mail-messages#Method-1.3A-Using-the-mail-function&lt;br /&gt;
 http://www.phpbuddy.eu/emails-mit-php-versenden.html?start=4&lt;br /&gt;
 http://de.wikipedia.org/wiki/Header_(E-Mail)#Beispielmail&lt;br /&gt;
 http://www.schlayer.org/Spamassasin-Hits-deutsche-Uebersetzung.html&lt;br /&gt;
 &lt;br /&gt;
=== Probleme mit Spamfiltern vermeiden ===&lt;br /&gt;
Oft ist es notwendig den -f Parameter zu verwenden um Spamfiltern zu vermitteln, daß es sich nicht um einen Spamversand handelt.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$addParams = &amp;#039;-fnoreply@&amp;#039;.$_SERVER[&amp;#039;SERVER_NAME&amp;#039;];&lt;br /&gt;
$success = mail($to, $subject, $body, $headers,$addParams);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Richtige Header ====&lt;br /&gt;
Bei Problemen mit der Spamerkennung. Hinweise bieten die Codes von Spamassasin&lt;br /&gt;
&lt;br /&gt;
 Link: http://www.schlayer.org/Spamassasin-Hits-deutsche-Uebersetzung.html&lt;br /&gt;
&lt;br /&gt;
 MESSAGE              BEDEUTUNG&lt;br /&gt;
 FH_FROMEML_NOTLD     From Adresse hat keine gültige Top Level Domain (oder fehlt)&lt;br /&gt;
 INVALID_MSGID        Aufbau: &amp;lt;random characters@fqdn-of-sending-host&amp;gt; z.B. &lt;br /&gt;
 RP_MATCHES_RCVD&lt;br /&gt;
 URI_HEX&lt;br /&gt;
&lt;br /&gt;
==== Funktionierendes Beispiel====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
				$fqdn_hostname = $_SERVER[&amp;#039;SERVER_NAME&amp;#039;];&lt;br /&gt;
				$mid = &amp;quot;&amp;lt;&amp;quot; . sha1(microtime()) . &amp;quot;@&amp;quot; . $fqdn_hostname . &amp;quot;&amp;gt;&amp;quot;;&lt;br /&gt;
				$from = &amp;#039;&amp;quot;Narda Safety Test Solutions&amp;quot; &amp;lt;noreply@&amp;#039;.$_SERVER[&amp;#039;SERVER_NAME&amp;#039;].&amp;#039;&amp;gt;&amp;#039;;&lt;br /&gt;
				$admin_mail = &amp;#039;&amp;lt;schlegel@geo-bit.de&amp;gt;&amp;#039;;&lt;br /&gt;
				$replyto_mail = &amp;#039;service.narda-de@l-3com.com&amp;#039;;&lt;br /&gt;
				$to = $_POST[e_brief];&lt;br /&gt;
				$subject=&amp;quot;NARDA-STS / Request for RMA-Number&amp;quot;;&lt;br /&gt;
				$headers .= &amp;#039;Reply-To: &amp;#039;.$replyto_mail.&amp;quot;\r\n&amp;quot;;&lt;br /&gt;
			    //$headers .= &amp;quot;Return-Path: noreply@&amp;quot; .$_SERVER[&amp;#039;SERVER_NAME&amp;#039;]. &amp;quot;\r\n&amp;quot;;&lt;br /&gt;
			    //$headers .= &amp;quot;Return-Path: &amp;quot; .$replyto_mail. &amp;quot;\r\n&amp;quot;;&lt;br /&gt;
				$headers .= &amp;#039;X-Mailer: PHP/&amp;#039;.phpversion().&amp;quot;\r\n&amp;quot;;&lt;br /&gt;
				$headers .= &amp;#039;From: &amp;#039;.$from.&amp;#039;\r\n&amp;#039;;&lt;br /&gt;
				//$headers .= &amp;#039;Cc:&amp;#039;.$narda_mail.&amp;quot;\n&amp;quot;;&lt;br /&gt;
				$headers .= &amp;#039;Bcc:&amp;#039;.$admin_mail.&amp;quot;\n&amp;quot;;&lt;br /&gt;
			    $headers .= &amp;quot;MIME-Version: 1.0\r\n&amp;quot;;&lt;br /&gt;
			    $headers .= &amp;quot;Content-type: text/plain; charset=iso-8859-1\r\n&amp;quot;;&lt;br /&gt;
			    $headers .= &amp;quot;Content-Transfer-Encoding: 7bit\r\n&amp;quot;;&lt;br /&gt;
				$headers .= &amp;quot;Message-ID: &amp;quot; .$mid. &amp;quot;\r\n\r\n&amp;quot;;&lt;br /&gt;
				$addParams = &amp;#039;-fnoreply@&amp;#039;.$_SERVER[&amp;#039;SERVER_NAME&amp;#039;];&lt;br /&gt;
				$body = &amp;quot;Dear Mrs./Mr. $_POST[first_name] $_POST[last_name],\r\n&amp;quot;;&lt;br /&gt;
				$body .= &amp;quot;your email-adress has been successfully confirmed. \r\n&amp;quot;;&lt;br /&gt;
				$body .= &amp;quot;You will find the form for filling in the data of your device here:\r\n\r\n&amp;quot;;&lt;br /&gt;
				$body .= $secure_root_url.&amp;quot;/$ziel_ordner/RMA/rma_reCall.php?req_num=$req_number&amp;quot;;&lt;br /&gt;
				$state=mail($to, $subject, $body, $headers, $addParams);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gmx Header ===&lt;br /&gt;
Bei GMX können Kleinigkeiten dazu führen daß die Mail als Spam eingestuft wird. Wichtig beim Absender z.B. das folgende Format:&lt;br /&gt;
 From: &amp;quot;Geocaching&amp;quot; &amp;lt;noreply@geocaching.com&amp;gt;&lt;br /&gt;
 PHP-Beispiel:&lt;br /&gt;
 $headers .=&amp;#039;From: &amp;quot;Narda&amp;quot; &amp;lt;&amp;#039;.$from.&amp;quot;&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
=== Testmail ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   $template = &amp;quot;Dies ist ein Test&amp;quot;;&lt;br /&gt;
   $empfaenger = &amp;quot;schlegel@geo-bit.de&amp;quot;;&lt;br /&gt;
   // Trenner für den Anhang&lt;br /&gt;
   $trenner = md5( time() );&lt;br /&gt;
&lt;br /&gt;
   // Mail Header erstellen&lt;br /&gt;
   $mailheader = &amp;#039;&amp;#039;;&lt;br /&gt;
   $mailheader .= &amp;quot;Reply-To: Schlegel&amp;lt;schlegel@geo-bit.de&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
   $mailheader .= &amp;quot;Return-Path: noreply@&amp;quot; .$_SERVER[&amp;#039;SERVER_NAME&amp;#039;]. &amp;quot;\r\n&amp;quot;;&lt;br /&gt;
   $mailheader .= &amp;quot;Message-ID: &amp;lt;&amp;quot; .time(). &amp;quot; noreply@&amp;quot; .$_SERVER[&amp;#039;SERVER_NAME&amp;#039;]. &amp;quot;&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
   $mailheader .= &amp;quot;X-Mailer: PHP v&amp;quot; .phpversion(). &amp;quot;\r\n&amp;quot;;&lt;br /&gt;
   $mailheader .= &amp;quot;From: Keine Antwort&amp;lt;noreply@&amp;quot; .$_SERVER[&amp;#039;SERVER_NAME&amp;#039;]. &amp;quot;&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
   $mailheader .= &amp;quot;MIME-Version: 1.0\r\n&amp;quot;;&lt;br /&gt;
   $mailheader .= &amp;quot;Content-Type: multipart/mixed;\r\n&amp;quot;;&lt;br /&gt;
   $mailheader .= &amp;quot; boundary = &amp;quot; .$trenner;&lt;br /&gt;
   $mailheader .= &amp;quot;\r\n\r\n&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
   // Mailbody vorbereiten&lt;br /&gt;
   $mailbody  = &amp;quot;This is a multi-part message in MIME format\r\n&amp;quot;;&lt;br /&gt;
   $mailbody .= &amp;quot;--&amp;quot; .$trenner. &amp;quot;\r\n&amp;quot;;&lt;br /&gt;
   $mailbody .= &amp;quot;Content-Type: text/html; charset=UTF-8\r\n&amp;quot;;&lt;br /&gt;
   $mailbody .= &amp;quot;Content-Transfer-Encoding: 8bit\r\n\r\n&amp;quot;;&lt;br /&gt;
   $mailbody .= $template. &amp;quot;\r\n\r\n&amp;quot;;&lt;br /&gt;
   echo($mailheader);&lt;br /&gt;
   echo($mailbody);&lt;br /&gt;
   // Email versenden&lt;br /&gt;
   if (mail( $empfaenger, htmlspecialchars( $betreff ), $mailbody, $mailheader ))&lt;br /&gt;
   {&lt;br /&gt;
       // Bei erfolgreichem Versand Danke-Seite anzeigen&lt;br /&gt;
       echo &amp;#039;Danke, die Email wurde verschickt!&amp;#039;;&lt;br /&gt;
   }else{&lt;br /&gt;
	echo &amp;#039;Fehler beim Versand&amp;#039;;&lt;br /&gt;
   }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== Einfache Text E-Mail mit Template ===&lt;br /&gt;
Einfache Text Email&lt;br /&gt;
&lt;br /&gt;
Zuerst das Listing unserer Template Datei mailbody.txt&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Soeben ist eine Nachricht von ###NAME### eingetroffen.&lt;br /&gt;
Als Antwortadresse wurde ###EMAIL### angegeben.&lt;br /&gt;
Die Nachricht die gesendet wurde:&lt;br /&gt;
###NACHRICHT###&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wie man unschwer erkennt, ist das ganz normaler und schlichter Text. Lediglich die Platzhalter darin fallen auf. Diese Platzhalter korrespondieren in unserem Script mit den Benutzereingaben und werden in unserem Script durch diese ersetzt.&lt;br /&gt;
Dadurch das wir den Text, der später per Email an uns geschickt wird, in einer eigenen Datei ablegen, können wir den Text schnell und flexibel beliebig verändern und erweitern. Da es sich hierbei um einen Mailer handelt der nur reinen Text verschickt, müssen wir auf jegliche Art von Formatierungen verzichten.&lt;br /&gt;
&lt;br /&gt;
Bisher haben wir das HTML-Formular, die Funktionen und das Mail Template kennengelernt, fehlt nur noch das Hauptscript, dass wir uns gleich mal vorknöpfen.&lt;br /&gt;
&lt;br /&gt;
Listing der Datei mail.php&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
 &lt;br /&gt;
header( &amp;#039;Content-Type: text/html; charset=utf-8&amp;#039; );&lt;br /&gt;
 &lt;br /&gt;
// Empfänger Email&lt;br /&gt;
$empfaenger = &amp;#039;max.mustermann@domain.tld&amp;#039;;&lt;br /&gt;
 &lt;br /&gt;
// Prüfen ob das Formular abgeschickt wurde&lt;br /&gt;
if (isset($_POST[&amp;#039;senden&amp;#039;]))&lt;br /&gt;
{&lt;br /&gt;
    // Funktionen einbinden&lt;br /&gt;
    include( &amp;#039;funktionen.inc.php&amp;#039; );&lt;br /&gt;
 &lt;br /&gt;
    // Benutzereingaben bereinigen und auf Injection prüfen&lt;br /&gt;
    cleanInput();&lt;br /&gt;
 &lt;br /&gt;
    // Name prüfen&lt;br /&gt;
    $name = checkName( $_POST[&amp;#039;name&amp;#039;] );&lt;br /&gt;
    // Email prüfen&lt;br /&gt;
    $email = checkEmail( $_POST[&amp;#039;email&amp;#039;] );&lt;br /&gt;
    // Betreff und Nachricht prüfen&lt;br /&gt;
    if ((strlen( $_POST[&amp;#039;betreff&amp;#039;] ) &amp;lt; 5) || (strlen( $_POST[&amp;#039;nachricht&amp;#039;] ) &amp;lt; 5))&lt;br /&gt;
    {&lt;br /&gt;
        die( &amp;#039;Bitte füllen Sie alle Felder aus!&amp;#039; );&lt;br /&gt;
    }&lt;br /&gt;
    else&lt;br /&gt;
    {&lt;br /&gt;
        $betreff   = $_POST[&amp;#039;betreff&amp;#039;];&lt;br /&gt;
        $nachricht = $_POST[&amp;#039;nachricht&amp;#039;];&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    // --------------------------------------------------------------------------------&lt;br /&gt;
    // Wurde das Script bisher nicht abgebrochen, wurde das Formular korrekt ausgefüllt&lt;br /&gt;
    // --------------------------------------------------------------------------------&lt;br /&gt;
 &lt;br /&gt;
    // Template mit dem Mailbody laden und für den Versand vorbereiten&lt;br /&gt;
    $mailbody = file_get_contents( &amp;#039;mailbody.txt&amp;#039; );&lt;br /&gt;
    // Platzhalter mit den Benutzereingaben ersetzen&lt;br /&gt;
    $mailbody = str_replace( &amp;#039;###NAME###&amp;#039;, htmlspecialchars( $name ), $mailbody );&lt;br /&gt;
    $mailbody = str_replace( &amp;#039;###EMAIL###&amp;#039;, $email, $mailbody );&lt;br /&gt;
    $mailbody = str_replace( &amp;#039;###NACHRICHT###&amp;#039;, htmlspecialchars( $nachricht ), $mailbody );&lt;br /&gt;
 &lt;br /&gt;
    // Mail Header erstellen&lt;br /&gt;
    $mailheader  = &amp;quot;From: PHP Email Tutorial&amp;lt;noreply@&amp;quot; .$_SERVER[&amp;#039;SERVER_NAME&amp;#039;]. &amp;quot;&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
    $mailheader .= &amp;quot;Reply-To: &amp;quot; .$name. &amp;quot;&amp;lt;&amp;quot; .$email. &amp;quot;&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
    $mailheader .= &amp;quot;Return-Path: noreply@&amp;quot; .$_SERVER[&amp;#039;SERVER_NAME&amp;#039;]. &amp;quot;\r\n&amp;quot;;&lt;br /&gt;
    $mailheader .= &amp;quot;MIME-Version: 1.0\r\n&amp;quot;;&lt;br /&gt;
    $mailheader .= &amp;quot;Content-Type: text/plain; charset=UTF-8\r\n&amp;quot;;&lt;br /&gt;
    $mailheader .= &amp;quot;Content-Transfer-Encoding: 7bit\r\n&amp;quot;;&lt;br /&gt;
    $mailheader .= &amp;quot;Message-ID: &amp;lt;&amp;quot; .time(). &amp;quot; noreply@&amp;quot; .$_SERVER[&amp;#039;SERVER_NAME&amp;#039;]. &amp;quot;&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
    $mailheader .= &amp;quot;X-Mailer: PHP v&amp;quot; .phpversion(). &amp;quot;\r\n\r\n&amp;quot;;&lt;br /&gt;
 &lt;br /&gt;
    // Email versenden&lt;br /&gt;
    if (@mail( $empfaenger, htmlspecialchars( $betreff ), $mailbody, $mailheader ))&lt;br /&gt;
    {&lt;br /&gt;
        // Bei erfolgreichem Versand Danke-Seite anzeigen&lt;br /&gt;
        echo &amp;#039;Danke, die Email wurde verschickt!&amp;#039;;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Das sieht im ersten Moment mehr und wilde&lt;br /&gt;
r aus, als es das eigentlich ist. Der obere Teil ist schnell erklärt. Zunächst setzen wir die Email des Empfängers, der idR wir selbst sind. Dann wird geprüft ob das Formular überhaupt abgeschickt wurde und wenn dem so ist, binden wir die benötigten Funktionen ein und überprüfen die Benutzereingaben.&lt;br /&gt;
&lt;br /&gt;
Mit den Zeilen ...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    // Template mit dem Mailbody laden und für den Versand vorbereiten&lt;br /&gt;
    $mailbody = file_get_contents( &amp;#039;mailbody.txt&amp;#039; );&lt;br /&gt;
    // Platzhalter mit den Benutzereingaben ersetzen&lt;br /&gt;
    $mailbody = str_replace( &amp;#039;###NAME###&amp;#039;, htmlspecialchars( $name ), $mailbody );&lt;br /&gt;
    $mailbody = str_replace( &amp;#039;###EMAIL###&amp;#039;, $email, $mailbody );&lt;br /&gt;
    $mailbody = str_replace( &amp;#039;###NACHRICHT###&amp;#039;, htmlspecialchars( $nachricht ), $mailbody );&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
... laden wir das Mail Template (file_get_contents) und ersetzen mit einfachen str_replace Funktionen die Platzhalter. Auch wenn wir bereits auf mögliche Injections geprüft haben, entschärfen wir dennoch die Eingaben mit htmlspecialchars, damit uns niemand etwas unterschiebt. Bei der Email ist das nicht nötig, da diese sonst nicht durch den Filter gekommen wäre.&lt;br /&gt;
&lt;br /&gt;
Jetzt kommen wir zu dem wichtigsten Teil, der ein erfolgreiches Versenden überhaupt erst möglich macht: dem Mail Header.&lt;br /&gt;
&lt;br /&gt;
Der Mail Header ist der Kopf der Email, der alle relevanten und wichtigen Informationen über unsere Email enthält. Sehr sehr häufig sieht man in Scripts und Tutorials, dass hier lediglich das &amp;quot;From:&amp;quot; angegeben ist. Wenn nur diese Information angegeben ist, bleibt die Mail sehr häufig in einem Spamfilter hängen. Kein Mensch würde auf die Idee kommen einen echten Brief zu verschicken und als Beschreibung auf dem Brief nur einen Name angeben, ohne komplette Anschrift und Absenderadresse. Wieso dann bei einer Email?!&lt;br /&gt;
&lt;br /&gt;
Schauen wir uns also an wie ein Header aussieht, der die wichtigsten Angaben enthält:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    $mailheader  = &amp;quot;From: PHP Email Tutorial&amp;lt;noreply@&amp;quot; .$_SERVER[&amp;#039;SERVER_NAME&amp;#039;]. &amp;quot;&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
    $mailheader .= &amp;quot;Reply-To: &amp;quot; .$name. &amp;quot;&amp;lt;&amp;quot; .$email. &amp;quot;&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
    $mailheader .= &amp;quot;Return-Path: noreply@&amp;quot; .$_SERVER[&amp;#039;SERVER_NAME&amp;#039;]. &amp;quot;\r\n&amp;quot;;&lt;br /&gt;
    $mailheader .= &amp;quot;MIME-Version: 1.0\r\n&amp;quot;;&lt;br /&gt;
    $mailheader .= &amp;quot;Content-Type: text/plain; charset=UTF-8\r\n&amp;quot;;&lt;br /&gt;
    $mailheader .= &amp;quot;Content-Transfer-Encoding: 7bit\r\n&amp;quot;;&lt;br /&gt;
    $mailheader .= &amp;quot;Message-ID: &amp;lt;&amp;quot; .time(). &amp;quot; noreply@&amp;quot; .$_SERVER[&amp;#039;SERVER_NAME&amp;#039;]. &amp;quot;&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
    $mailheader .= &amp;quot;X-Mailer: PHP v&amp;quot; .phpversion(). &amp;quot;\r\n\r\n&amp;quot;;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Steuerungzeichen &amp;quot;\r\n&amp;quot; entsprechen einen Wagenrücklauf und Zeilenvorschub oder anders ausgedrückt, ein Zeilenumbruch. Diese Steuerungzeichen sind betriebssystemabhängig und müssen ggfs. angepasst werden. Auf Linux würde man z.B. nur &amp;quot;\n&amp;quot; verwenden. Schauen wir uns nun die anderen angaben an:&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;From&amp;#039;&amp;#039;&amp;#039; - Das ist die Absendeadresse und der dazugehörige Name. Es ist üblich diesen in der Form Name anzugeben. Das ist die absolute Minimumangabe für inen Mailheader. Fehlt das From, wird der Versand der Mail fehlschlagen.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Reply-To&amp;#039;&amp;#039;&amp;#039; - Das Format kann entweder nur eine Email Adresse sein, oder man wählt das Format wir bei From. Dieses Feld ist die Antwortadresse an die die Mail geschickt wird, wenn wir im Mail Client auf antworten klicken.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Return-Path&amp;#039;&amp;#039;&amp;#039; - Konnte die Mail nicht zugestellt werden, wird dies an diese Adresse gemeldet.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;MIME-Version&amp;#039;&amp;#039;&amp;#039; - Entspricht dem MIME Typ der Mail.&lt;br /&gt;
    &lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Content-Type&amp;#039;&amp;#039;&amp;#039; - Das ist die Information die dem Mail Client mitteilt, um welche Art Mail es sich handelt und welcher Zeichensatz zur Darstellung benutzt werden soll.&lt;br /&gt;
    &lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Content-Transfer-Encoding&amp;#039;&amp;#039;&amp;#039; - Dies beschreibt die Art der Übertragung und wie sowohl Mailserver, als auch Email Clients diese Mail interpretieren. 7bit ist die kleinste Form, die maximal mögliche Kompatibilität ermöglicht. Beim 7bit ASCII Zeichensatz können die ersten 128 zeichen der ASCII Tabelle dargestellt werden. Zeichen wie deutsche Umlaute sind darin nicht vorgesehen. Bei der 8bit Übertragung können bis zu 256 zeichen dargestellt werden. Ältere Mailerver, so liest man, verstehen nur 7bit und verwerfen Anfragen die mit 8bit übertragen werden sollen. Anders ausgedrückt, es kann passieren das die Mail nicht ankommt. Ich persönlich hatte damit allerdings noch nie Probleme und die 7bit &amp;quot;Zwangsangabe&amp;quot; scheint veraltet zu sein.&lt;br /&gt;
    &lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Message-ID&amp;#039;&amp;#039;&amp;#039; - Die Message ID ist einmalig, bzw. sollte es sein, wodurch die Mail eindeutig zugeordnet werden kann.&lt;br /&gt;
    &lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;X-Mailer&amp;#039;&amp;#039;&amp;#039; - Beschreibt den Client der die Mail versendet hat. In unserem Fall geben wir die PHP Version an, damit Mailserver auf der Route wissen, dass diese Mail mit PHP verschickt wurde.&lt;br /&gt;
&lt;br /&gt;
Es gibt noch weitere Felder und Varianten, die uns aber im moment nicht kümmern. Im Abschnitt Mail mit Anhang werden wir noch einen etwas anderen Header kennen lernen.&lt;br /&gt;
Speziell die letzten beiden Angaben (Message ID und X_Mailer) im Header oben sind sehr wichtige Informationen. Fehlen diese Angaben, ist die Wahrscheinlichkeit sehr hoch, dass die Mail niemals beim Empfänger ankommen wird, weil die Mail irgendwo unterwegs in einem Spamfilter hängen bleibt und nicht weitergeleitet wird!&lt;br /&gt;
&lt;br /&gt;
Falls also eine Mail nicht ankommt, liegt das in den aller meisten Fällen entweder am Transfer-Encoding (7bit oder 8bit) oder an fehlenden Absendeangaben!&lt;br /&gt;
&lt;br /&gt;
Der Rest des Scripts ist sehr einfach, weil hier einfach nur noch die Mail verschickt wird.&lt;br /&gt;
&lt;br /&gt;
    if (@mail( $empfaenger, htmlspecialchars( $betreff ), $mailbody, $mailheader ))&lt;br /&gt;
    {&lt;br /&gt;
        // Bei erfolgreichem Versand Danke-Seite anzeigen&lt;br /&gt;
        echo &amp;#039;Danke, die Email wurde verschickt!&amp;#039;;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
Die mail-Funktion kennt noch einen 5. Parameter auf den ich jetzt nicht eingehen werde, weil dieser nur in den seltensten Fällen unterstützt wird. Wer mehr darüber erfahren möchte kann sich darüber in der Online-Doku informieren. Die mail-Funktion selbst liefert entweder TRUE oder FALSE zurück. Bei einem FALSE konnte die Mail nicht für den Versand übergeben werden und wir können entsprechend darauf reagieren. Im Falle von TRUE heisst das zwar das die Mail für den Versand angenommen wurde, aber es ist nicht prüfbar ob die Mail auch tatsächlich beim Empfänger ankam! Einige Gründe dafür stehen weiter oben. Wurde die Mail für den Versand akzeptiert, können wir darauf angemessen reagieren, indem wir den Besucher zu einer Danke-Seite weiterleiten oder, was weiter unter gezeigt wird, dem Benutzer eine Empfangsbestätigung, respektive Kopie der Mail an seine Adresse schicken.&lt;br /&gt;
&lt;br /&gt;
Soweit so gut. Dieser Abschnitt fiel etwas länger aus, weil ich die prinzipielle Funktionsweise und den Header beschrieben habe. Die nachfolgenden Beispiele sind über große Strecken identisch, deswegen spare ich mir dort die Erklärungen und gehe nur auf die abweichenden Passagen ein.&lt;br /&gt;
&lt;br /&gt;
=== E-Mail mit CSS Formatierung ===&lt;br /&gt;
&lt;br /&gt;
Eine Email im HTML Format zu senden ist im Grunde genommen nichts anderes, als eine einzelne Webseite per Email zu verschicken. Wir haben also mehr oder weniger freie Hand was die Gestaltung angeht, solange wir uns an die HTML und CSS Richtlinien halten. Das wird sofort ersichtlicht, wenn man das Template für die Email sieht.&lt;br /&gt;
&lt;br /&gt;
Listing der Datei mailbody.txt&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE html PUBLIC &amp;quot;-//W3C//DTD XHTML 1.0 Transitional//EN&amp;quot; &amp;quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;html xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot; xml:lang=&amp;quot;de&amp;quot; lang=&amp;quot;de&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
&amp;lt;meta http-equiv=&amp;quot;Content-Type&amp;quot; content=&amp;quot;text/html; charset=utf-8&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;title&amp;gt;Email als HTML&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;style type=&amp;quot;text/css&amp;quot;&amp;gt;&lt;br /&gt;
body { font: normal 12px Verdana, Arial, Helvetica, sans-serif; }&lt;br /&gt;
a { color: blue; text-decoration: none; }&lt;br /&gt;
h2 { font-size: 16px; font-weight: bold; }&lt;br /&gt;
.gruen { color: green; }&lt;br /&gt;
&amp;lt;/style&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt;Soeben ist eine Nachricht von &amp;lt;span class=&amp;quot;gruen&amp;quot;&amp;gt;###NAME###&amp;lt;/span&amp;gt; eingetroffen.&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Als Antwortadresse wurde &amp;lt;a href=&amp;quot;mailto:###EMAIL###&amp;quot;&amp;gt;###EMAIL###&amp;lt;/a&amp;gt; angegeben.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Die Nachricht die gesendet wurde lautet:&amp;lt;br /&amp;gt;&lt;br /&gt;
###NACHRICHT###&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Template besteht aus einer normalen HTML Datei mit etwas CSS. Auch hier treffen wir wieder unsere Platzhalter, die durch die Benutzereingaben ersetzt werden.&lt;br /&gt;
&lt;br /&gt;
Die Datei funktionen.inc.php ist identisch mit wie beim vorherigen Beispiel. Auch die mail.php weicht nur minimal vom letzten Beispiel ab - das aber mit großer Wirkung!&lt;br /&gt;
Die erste Abweichung findet in der Zeile zum ersetzen des Platzhalters für die Nachricht statt.&lt;br /&gt;
&lt;br /&gt;
 $mailbody = str_replace( &amp;#039;###NACHRICHT###&amp;#039;, nl2br( htmlspecialchars( $nachricht ) ), $mailbody );&lt;br /&gt;
&lt;br /&gt;
Ergänzt wurde hier die Funktion nl2br. Diese Funktion bewirkt, dass das Steuerungzeichen für einen Zeilenumbruch (\n) in ein HTML-konformes Break (&amp;lt;br /&amp;gt;) umgewandelt wird. Ohne diese Funktion hätten wir bei der Ausgabe nur eine laaaange Zeile Text ohne neue Absätze und Umbrüche.&lt;br /&gt;
&lt;br /&gt;
Die nächsten beiden Veränderungen finden im Mail Header statt. Da wird nun ja keinen reinen Text, sondern HTML verschicken, muß natürlich der Content-Type angepasst werden. Ebenso ändern wir das Transfer-Encoding auf 8bit. Hier die beiden geänderten Zeilen:&lt;br /&gt;
&lt;br /&gt;
    $mailheader .= &amp;quot;Content-Type: text/html; charset=UTF-8\r\n&amp;quot;;&lt;br /&gt;
    $mailheader .= &amp;quot;Content-Transfer-Encoding: 8bit\r\n&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
That&amp;#039;s it!&lt;br /&gt;
Diese kleinen Veränderungen haben eine solch große Auswirkung auf die Art der Darstellung!&lt;br /&gt;
&lt;br /&gt;
Das Ergebnis im Mail Client:&lt;br /&gt;
&lt;br /&gt;
(Deutlich zu sehen das die H2-Überschrift sich absetzt und auch der Name durch das CSS farblich hervorgehoben wird)&lt;br /&gt;
&lt;br /&gt;
Vermutlich stand jeder angehende Programmierer schon mal an dieser Stelle. Voller Stolz blickt man in sein Postfach, wo die erste Mail vom eigenen Formmailer eingetroffen ist. Dann denkt man sich: &amp;quot;Das war ja einfach, mit nur so wenigen Zeilen Code so ein Ergebnis zu erzielen. Wie schwer kann es da schon sein auch eine Datei mitzuschicken?!&amp;quot;.&lt;br /&gt;
Angesichts der oben gezeigten Beispiele, und wie minimal der Unterschied zwischen Text Mail und HTML Mail ist, neigt man dazu zu denken, dass dies mit einem Dateianhang ebenso einfach ist.&lt;br /&gt;
&lt;br /&gt;
Tja, leider ist dem nicht so. Das senden von Dateianhänge ist erheblich aufwändiger als das senden einer Text/HTML Mail. Das Formular ist abweichend, der Mail Header ist abweichend, der Mail Body muß in einzelne Teilbereiche getrennt werden, Dateianhänge müssen Richtlinien beachten, was die Zeilenlänge und die Art der Zeichen innerhalb der Mail angeht.&lt;br /&gt;
Glücklicherweise hilft uns PHP bei den meisten Sachen und deshalb werden wir auch dieses Problem meistern. :)&lt;br /&gt;
&lt;br /&gt;
=== E-Mail mit CSS und Anhang ===&lt;br /&gt;
Siehe auch: [[PHP - Upload Formular]]&lt;br /&gt;
Todo Quelle siehe oben (2012-03)&lt;br /&gt;
&lt;br /&gt;
HTML Email mit CSS Formatierung und Dateianhang&lt;br /&gt;
&lt;br /&gt;
Da wir eine Datei mit der Mail verschicken möchten, muß das Formular natürlich dahingehend erweitert werden, dass ein Upload auch möglich ist. In unserem Beispiel möchten wir eine JPG datei anhängen und erlauben auch nur das hochladen dieses Bildtyps.&lt;br /&gt;
Die Template Datei ist identisch zum vorherigen HTML Beispiel. In der Datei funktionen.inc.php fügen wir aber eine weitere Funktion hinzu, die für uns prüft, ob eine Datei hochgeladen wurde und ob es sich dabei um eine JPG Datei handelt.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
function checkFile()&lt;br /&gt;
{&lt;br /&gt;
    if ($_FILES[&amp;#039;datei&amp;#039;][&amp;#039;error&amp;#039;] == 0 &amp;amp;&amp;amp;&lt;br /&gt;
        $_FILES[&amp;#039;datei&amp;#039;][&amp;#039;type&amp;#039;] == &amp;#039;image/jpeg&amp;#039;)&lt;br /&gt;
    {&lt;br /&gt;
        return $_FILES[&amp;#039;datei&amp;#039;][&amp;#039;name&amp;#039;];&lt;br /&gt;
    }&lt;br /&gt;
    else&lt;br /&gt;
    {&lt;br /&gt;
        die( &amp;#039;Bitte eine gültige JPG Datei anhängen!&amp;#039; );&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In der Datei mail.php wird sich nun einiges ändern. Zunächst erweitern wir die einleitende Abfrage dahingehend, dass wir feststellen ob auch eine Datei angehängt wurde ...&lt;br /&gt;
&lt;br /&gt;
 if (isset($_POST[&amp;#039;senden&amp;#039;]) &amp;amp;&amp;amp; $_FILES[&amp;#039;datei&amp;#039;][&amp;#039;size&amp;#039;] &amp;gt; 0)&lt;br /&gt;
&lt;br /&gt;
... und fügen ebenso den Aufruf für die neue Funktion hinzu, die prüft ob ein JPG hochgeladen wurde:&lt;br /&gt;
&lt;br /&gt;
 $uploadname = checkFile();&lt;br /&gt;
&lt;br /&gt;
Das weitere Listing der Datei mail.php sieht wie folgt aus:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    // Template mit dem Mailbody laden&lt;br /&gt;
    $template = file_get_contents( &amp;#039;mailbody.txt&amp;#039; );&lt;br /&gt;
    // Trenner für den Anhang&lt;br /&gt;
    $trenner = md5( time() );&lt;br /&gt;
 &lt;br /&gt;
    // Platzhalter mit den Benutzereingaben ersetzen&lt;br /&gt;
    $template = str_replace( &amp;#039;###NAME###&amp;#039;, htmlspecialchars( $name ), $template );&lt;br /&gt;
    $template = str_replace( &amp;#039;###EMAIL###&amp;#039;, $email, $template );&lt;br /&gt;
    $template = str_replace( &amp;#039;###NACHRICHT###&amp;#039;, nl2br( htmlspecialchars( $nachricht ) ), $template );&lt;br /&gt;
 &lt;br /&gt;
    // Mail Header erstellen&lt;br /&gt;
    $mailheader .= &amp;quot;Reply-To: &amp;quot; .$name. &amp;quot;&amp;lt;&amp;quot; .$email. &amp;quot;&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
    $mailheader .= &amp;quot;Return-Path: noreply@&amp;quot; .$_SERVER[&amp;#039;SERVER_NAME&amp;#039;]. &amp;quot;\r\n&amp;quot;;&lt;br /&gt;
    $mailheader .= &amp;quot;Message-ID: &amp;lt;&amp;quot; .time(). &amp;quot; noreply@&amp;quot; .$_SERVER[&amp;#039;SERVER_NAME&amp;#039;]. &amp;quot;&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
    $mailheader .= &amp;quot;X-Mailer: PHP v&amp;quot; .phpversion(). &amp;quot;\r\n&amp;quot;;&lt;br /&gt;
    $mailheader .= &amp;quot;From: PHP Email Tutorial&amp;lt;noreply@&amp;quot; .$_SERVER[&amp;#039;SERVER_NAME&amp;#039;]. &amp;quot;&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
    $mailheader .= &amp;quot;MIME-Version: 1.0\r\n&amp;quot;;&lt;br /&gt;
    $mailheader .= &amp;quot;Content-Type: multipart/mixed;\r\n&amp;quot;;&lt;br /&gt;
    $mailheader .= &amp;quot; boundary = &amp;quot; .$trenner;&lt;br /&gt;
    $mailheader .= &amp;quot;\r\n\r\n&amp;quot;;&lt;br /&gt;
 &lt;br /&gt;
    // Mailbody vorbereiten&lt;br /&gt;
    $mailbody  = &amp;quot;This is a multi-part message in MIME format\r\n&amp;quot;;&lt;br /&gt;
    $mailbody .= &amp;quot;--&amp;quot; .$trenner. &amp;quot;\r\n&amp;quot;;&lt;br /&gt;
    $mailbody .= &amp;quot;Content-Type: text/html; charset=UTF-8\r\n&amp;quot;;&lt;br /&gt;
    $mailbody .= &amp;quot;Content-Transfer-Encoding: 8bit\r\n\r\n&amp;quot;;&lt;br /&gt;
    $mailbody .= $template. &amp;quot;\r\n\r\n&amp;quot;;&lt;br /&gt;
 &lt;br /&gt;
    // Anhang anfügen&lt;br /&gt;
    $mailbody .= &amp;quot;--&amp;quot; .$trenner. &amp;quot;\r\n&amp;quot;;&lt;br /&gt;
    $mailbody .= &amp;quot;Content-Type: image/jpeg; name=\&amp;quot;&amp;quot; .$uploadname. &amp;quot;\&amp;quot;\r\n&amp;quot;;&lt;br /&gt;
    $mailbody .= &amp;quot;Content-Transfer-Encoding: base64\r\n&amp;quot;;&lt;br /&gt;
    $mailbody .= &amp;quot;Content-Disposition: attachment; filename=\&amp;quot;&amp;quot; .$uploadname. &amp;quot;\&amp;quot;\r\n\r\n&amp;quot;;&lt;br /&gt;
    $mailbody .= chunk_split( base64_encode( file_get_contents( $_FILES[&amp;#039;datei&amp;#039;][&amp;#039;tmp_name&amp;#039;] ) ) );&lt;br /&gt;
    $mailbody .= &amp;quot;\n&amp;quot;;&lt;br /&gt;
 &lt;br /&gt;
    // Email versenden&lt;br /&gt;
    if (@mail( $empfaenger, htmlspecialchars( $betreff ), $mailbody, $mailheader ))&lt;br /&gt;
    {&lt;br /&gt;
        // Bei erfolgreichem Versand Danke-Seite anzeigen&lt;br /&gt;
        echo &amp;#039;Danke, die Email wurde verschickt!&amp;#039;;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wir sehen auf den ersten Blick, dass dieser Code ganz anders aussieht als das vorherige Beispiel. Gehen wir den Code mal der Reihe nach durch, um etwas Licht in&amp;#039;s Dunkel zu bringen.&lt;br /&gt;
&lt;br /&gt;
Im oberen Bereich erzeugen wir einen eindeutigen String, den wir zum trennen der verschiedenen Teilbereiche der Mail verwenden werden:&lt;br /&gt;
&lt;br /&gt;
 $trenner = md5( time() );&lt;br /&gt;
&lt;br /&gt;
Der erste Teil des Mail Header ist uns bereits bekannt, aber beim Content-Type benötigen wir nun eine andere Angabe.&lt;br /&gt;
&lt;br /&gt;
 $mailheader .= &amp;quot;Content-Type: multipart/mixed;\r\n&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
Dieser Content-Type ähnelt der Angabe &amp;quot;multipart/form-data&amp;quot; in einem HTML Formular, wenn wir dort ebenfalls gemischte Inhalte haben, nämlich Text und Dateien. Damit der Mail Client nun weiß an welchen Stellen im gesendeten Quellcode er Inhalte trennen muß, teilen wir im Header den boundary-String mit.&lt;br /&gt;
&lt;br /&gt;
An dieser Stelle möchte ich noch auf 2 wichtige Dinge hinweisen. Das Leerzeichen vor dem &amp;quot;boundary&amp;quot; im Header ist kein Versehen! Es kann tatsächlich dazu führen das eine Mail nicht korrekt dargestellt wird, wenn dieses Leerzeichen fehlt. Ebenso ist es wichtig, dass die &amp;quot;From&amp;quot;-Angabe unmittelbar vor der &amp;quot;MIME-Version&amp;quot; und dem &amp;quot;Content-Type&amp;quot; steht. Vertauscht man die Reihenfolge der Header Angabe, führt das z.B. bei mir dazu, dass ich im Thunderbird nur eine leere Seite als Mail angezeigt bekomme, obwohl der komplette Mail Inhalt im Quelltext einsehbar ist.&lt;br /&gt;
&lt;br /&gt;
Die nächste Zeile ...&lt;br /&gt;
&lt;br /&gt;
 $mailbody  = &amp;quot;This is a multi-part message in MIME format\r\n&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
... steht vor der Nachricht im Head Bereich in der Email. Sie scheint nicht zwingend erforderlich zu sein, aber Mail Clients fügen diese ebenfalls hinzu, wenn man mit z.B. Thunderbird eine Email verschickt. Ich vermute, dass dies aus Gründen der Kompatibilität zu einigen Mail Server geschieht.&lt;br /&gt;
&lt;br /&gt;
Nun folgt der erste Teil unserer Email, der Text.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    $mailbody .= &amp;quot;--&amp;quot; .$trenner. &amp;quot;\r\n&amp;quot;;&lt;br /&gt;
    $mailbody .= &amp;quot;Content-Type: text/html; charset=UTF-8\r\n&amp;quot;;&lt;br /&gt;
    $mailbody .= &amp;quot;Content-Transfer-Encoding: 8bit\r\n\r\n&amp;quot;;&lt;br /&gt;
    $mailbody .= $template. &amp;quot;\r\n\r\n&amp;quot;;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Durch den Trenner teilen wir dem Mail Client mit, dass zwischen diesem Trenner und dem nächsten Trenner, bzw. dem Ende der Mail, ein Teilabschnitt dieser Email steht. Damit der Client weiß um was es sich bei diesem Abschnitt handelt, teilen wir ihm das mithilfe des &amp;quot;Content-Type&amp;quot; und dem &amp;quot;Transfer-Encoding&amp;quot; mit. Durch die Angabe &amp;quot;text/html&amp;quot; weiß nun der Client, dass alles bis zum nächsten Trennen als HTML dargestellt werden soll.&lt;br /&gt;
&lt;br /&gt;
Der nächste Teilabschnitt der Mail ist unser Bild:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    // Anhang anfügen&lt;br /&gt;
    $mailbody .= &amp;quot;--&amp;quot; .$trenner. &amp;quot;\r\n&amp;quot;;&lt;br /&gt;
    $mailbody .= &amp;quot;Content-Type: image/jpeg; name=\&amp;quot;&amp;quot; .$uploadname. &amp;quot;\&amp;quot;\r\n&amp;quot;;&lt;br /&gt;
    $mailbody .= &amp;quot;Content-Transfer-Encoding: base64\r\n&amp;quot;;&lt;br /&gt;
    $mailbody .= &amp;quot;Content-Disposition: attachment; filename=\&amp;quot;&amp;quot; .$uploadname. &amp;quot;\&amp;quot;\r\n\r\n&amp;quot;;&lt;br /&gt;
    $mailbody .= chunk_split( base64_encode( file_get_contents( $_FILES[&amp;#039;datei&amp;#039;][&amp;#039;tmp_name&amp;#039;] ) ) );&lt;br /&gt;
    $mailbody .= &amp;quot;\n&amp;quot;;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Wieder folgt zunächst der Trenner. Der Client stoppt seine HTML Ausgabe an dieser Position und wird ab diesem Punkt ausgeben, was ihm durch den &amp;quot;Content-Type&amp;quot; und das &amp;quot;Transfer-Encoding&amp;quot; aufgetragen wird. Wir sehen nun, dass wir als Content-Type eine JPG Datei ausgeben möchten. Der Name ergibt sich aus dem Rückgabewert der Funktion, die den Upload zuvor überprüft hat. Als Transfer-Encoding wird &amp;quot;base64&amp;quot; angegeben. Diese Angabe ist überaus wichtig um eine korrekte Übertragung der Daten zu gewährleisten. Mit der Angabe &amp;quot;Content-Disposition: attachment;&amp;quot; legen wir fest, dass der Anhang wirklich an die Mail angehängt wird. Eine andere Möglichkeit wäre hier das Einbetten in den Mailtext, indem man als Content-Disposition ein &amp;quot;inline&amp;quot; angibt. Die nächste Zeile ist ziemlich tricky:&lt;br /&gt;
&lt;br /&gt;
 $mailbody .= chunk_split( base64_encode( file_get_contents( $_FILES[&amp;#039;datei&amp;#039;][&amp;#039;tmp_name&amp;#039;] ) ) );&lt;br /&gt;
&lt;br /&gt;
Arbeiten wir uns mal von Innen nach Außen durch, weil hier mehrere Funktionen verschachtelt sind. Mit file_get_contents wird eine Datei als String eingelesen. Dies ist hier möglich, weil diese Funktion seit PHP 4.3 binary safe ist. Als einzulesender Dateiname nehmen wir hier den Name der temporären datei, die durch den Upload auf dem Server gelandet ist. Diese Datei steht nur zu genau diesem Zeitpunkt zur Verfügung. Sobald das Script beendet wird oder eine andere Seite geladen wird, existiert diese Datei nicht mehr. Möchte man diese Datei erst zu einem späteren Zeitpunkt verarbeiten, muß man diese zunächst mit move_uploaded_file an eine andere Position kopieren.&lt;br /&gt;
Da wir nun die Bilddatei als String eingelesen haben, wird er mit base64_encode umgewandelt, damit die Datei beschädigt wird, falls es nicht möglich ist die Mail als 8bit zu übertragen. Es wird also aus Gründen der Kompatibilität gemacht. Anschließend wird der String mit chunk_split so aufbereitet, dass die Zeilenlänge 76 Zeichen nicht übersteigt.&lt;br /&gt;
&lt;br /&gt;
Das war&amp;#039;s! Die Daten können nun wieder mit der mail-Funktion versendet werden. Sollte man mehr als eine Datei anhängen wollen, kann man den letzten Schritt beliebig oft wiederholen. Erst Trenner setzen, dann Art der Daten und Übertragungsmodus angeben, die Datei anhängen, fertig.&lt;br /&gt;
&lt;br /&gt;
==== Beispiel Funktion (SPAM Proofed)====&lt;br /&gt;
(Aus Narda Accredited Calibration)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
function send_acc_mail($rma_num,$arrForm,$arrPartner){&lt;br /&gt;
	global $user_db;&lt;br /&gt;
	global $dbase;&lt;br /&gt;
	global $pass_db;&lt;br /&gt;
	global $database;&lt;br /&gt;
	global $pdf_template;&lt;br /&gt;
	global $mail_template;// not used&lt;br /&gt;
	global $mail_template_txt;// only use this for plaintext message (more secure)&lt;br /&gt;
	global $pdf_css;&lt;br /&gt;
	global $narda_mail;&lt;br /&gt;
	global $admin_mail;&lt;br /&gt;
	global $replyto_mail;&lt;br /&gt;
	$partner_mail = $arrPartner[email];&lt;br /&gt;
&lt;br /&gt;
	$arrMarkers = array_merge($arrForm,$arrPartner,array(&amp;quot;rma_num&amp;quot;=&amp;gt;$rma_num));&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
	// PDF-TEMPLATE&lt;br /&gt;
	$pdf_template = file_get_contents( $pdf_template );&lt;br /&gt;
	$pdf_template = replace_markers($pdf_template,$arrMarkers);&lt;br /&gt;
	// Mail Template&lt;br /&gt;
	$mail_template_txt = file_get_contents( $mail_template_txt );&lt;br /&gt;
	$mail_template_txt = replace_markers($mail_template_txt,$arrMarkers);&lt;br /&gt;
&lt;br /&gt;
	//MAIL&lt;br /&gt;
	// Trenner für multipart mail&lt;br /&gt;
    $mid = md5( time() );&lt;br /&gt;
	$filename = &amp;quot;acc-&amp;quot;.$rma_num;&lt;br /&gt;
	&lt;br /&gt;
    // Anhang generieren&lt;br /&gt;
	include(&amp;quot;lib/mpdf56/mpdf.php&amp;quot;);&lt;br /&gt;
	$mpdf=new mPDF(&amp;#039;c&amp;#039;);&lt;br /&gt;
	$mpdf-&amp;gt;SetDisplayMode(&amp;#039;fullpage&amp;#039;);&lt;br /&gt;
	$stylesheet = file_get_contents($pdf_css);&lt;br /&gt;
	$mpdf-&amp;gt;WriteHTML($stylesheet,1); // 1 -&amp;gt; css/style only and no body/html/text&lt;br /&gt;
	$mpdf-&amp;gt;WriteHTML($pdf_template);&lt;br /&gt;
	$pdf_attachment = chunk_split(base64_encode($mpdf-&amp;gt;Output(&amp;#039;&amp;#039;,&amp;#039;S&amp;#039;)));&lt;br /&gt;
   &lt;br /&gt;
	// Mailheader&lt;br /&gt;
	//$to=$partner_mail;&lt;br /&gt;
	$to=&amp;quot;schlegel@geo-bit.de&amp;quot;;&lt;br /&gt;
	$subject = &amp;quot;Accredited Calibration Request&amp;quot;;&lt;br /&gt;
	$headers .= &amp;#039;Reply-To: &amp;#039;.$replyto_mail.&amp;quot;\r\n&amp;quot;;&lt;br /&gt;
    $headers .= &amp;quot;Return-Path: noreply@&amp;quot; .$_SERVER[&amp;#039;SERVER_NAME&amp;#039;]. &amp;quot;\r\n&amp;quot;;&lt;br /&gt;
	$headers .= &amp;#039;X-Mailer: PHP/&amp;#039;.phpversion().&amp;quot;\r\n&amp;quot;;&lt;br /&gt;
	$headers .=&amp;#039;From: NARDA-STS GmbH &amp;lt;&amp;#039;.$narda_mail.&amp;#039;&amp;gt;&amp;#039;.&amp;quot;\r\n&amp;quot;;&lt;br /&gt;
	$headers .= &amp;#039;Cc:&amp;#039;.$narda_mail.&amp;quot;\n&amp;quot;;&lt;br /&gt;
	$headers .= &amp;#039;Bcc:&amp;#039;.$admin_mail.&amp;quot;\n&amp;quot;;&lt;br /&gt;
	&lt;br /&gt;
	$headers .= &amp;quot;MIME-Version: 1.0\r\n&amp;quot;;&lt;br /&gt;
	$headers .= &amp;quot;Content-Type: multipart/mixed; boundary=\&amp;quot;&amp;quot;.$mid.&amp;quot;\&amp;quot;\r\n\r\n&amp;quot;;&lt;br /&gt;
	$headers .= &amp;quot;This is a multi-part message in MIME format.\r\n&amp;quot;;&lt;br /&gt;
	$headers .= &amp;quot;--&amp;quot;.$mid.&amp;quot;\r\n&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
	// Textpart&lt;br /&gt;
	$headers .= &amp;quot;Content-type:text/plain; charset=iso-8859-1\r\n&amp;quot;;&lt;br /&gt;
	$headers .= &amp;quot;Content-Transfer-Encoding: 7bit\r\n\r\n&amp;quot;;&lt;br /&gt;
    //$headers .= &amp;quot;Content-Type: text/html; charset=UTF-8\r\n&amp;quot;;&lt;br /&gt;
    //$headers .= &amp;quot;Content-Transfer-Encoding: 8bit\r\n\r\n&amp;quot;;&lt;br /&gt;
    $headers .= $mail_template_txt.&amp;quot;\r\n\r\n&amp;quot;;&lt;br /&gt;
	$headers .= &amp;quot;--&amp;quot;.$mid.&amp;quot;\r\n&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
	//pdf-att&lt;br /&gt;
	$headers .= &amp;quot;Content-Type: application/pdf; name=\&amp;quot;&amp;quot;.$filename.&amp;quot;\&amp;quot;\r\n&amp;quot;;&lt;br /&gt;
	$headers .= &amp;quot;Content-Transfer-Encoding: base64\r\n&amp;quot;;&lt;br /&gt;
	$headers .= &amp;quot;Content-Disposition: attachment; filename=\&amp;quot;&amp;quot;.$filename.&amp;quot;\&amp;quot;\r\n\r\n&amp;quot;;&lt;br /&gt;
	$headers .= $pdf_attachment.&amp;quot;\r\n\r\n&amp;quot;;&lt;br /&gt;
	$headers .= &amp;quot;--&amp;quot;.$mid.&amp;quot;--&amp;quot;;&lt;br /&gt;
	&lt;br /&gt;
	$addParams = &amp;#039;-fnoreply@&amp;#039;.$_SERVER[&amp;#039;SERVER_NAME&amp;#039;];&lt;br /&gt;
	$success = mail($to, $subject, $body, $headers,$addParams);&lt;br /&gt;
	return $success;&lt;br /&gt;
	//echo($headers);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== E-Mail mit Empfangsbestätigung ===&lt;br /&gt;
&lt;br /&gt;
Eine Empfangsbestätigung verschicken&lt;br /&gt;
&lt;br /&gt;
Das ist genauso einfach wie das verschicken einer ganz einfachen Textmail. Wie wir ja bereits gehört haben, gibt die mail-Funktion bei Erfolg ein TRUE zurück. Damit können wir also feststellen, ob die Nachricht des Benutzers an uns übermittelt wurde und falls ja, schicken wir ihm eine Mail als Bestätigung. Das sieht in etwa so aus:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    if (@mail( $empfaenger, htmlspecialchars( $betreff ), $mailbody, $mailheader ))&lt;br /&gt;
    {&lt;br /&gt;
        // Bei erfolgreichem Versand Danke-Seite anzeigen&lt;br /&gt;
        $mailheader  = &amp;quot;From: Firma Max Mustermann&amp;lt;mustermann@domain.tld&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
        $mailheader .= &amp;quot;Reply-To: Firma Max Mustermann&amp;lt;mustermann@domain.tld&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
        $mailheader .= &amp;quot;Return-Path: noreply@&amp;quot; .$_SERVER[&amp;#039;SERVER_NAME&amp;#039;]. &amp;quot;\r\n&amp;quot;;&lt;br /&gt;
        $mailheader .= &amp;quot;MIME-Version: 1.0\r\n&amp;quot;;&lt;br /&gt;
        $mailheader .= &amp;quot;Content-Type: text/plain; charset=UTF-8\r\n&amp;quot;;&lt;br /&gt;
        $mailheader .= &amp;quot;Content-Transfer-Encoding: 7bit\r\n&amp;quot;;&lt;br /&gt;
        $mailheader .= &amp;quot;Message-ID: &amp;lt;&amp;quot; .time(). &amp;quot; noreply@&amp;quot; .$_SERVER[&amp;#039;SERVER_NAME&amp;#039;]. &amp;quot;&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
        $mailheader .= &amp;quot;X-Mailer: PHP v&amp;quot; .phpversion(). &amp;quot;\r\n\r\n&amp;quot;;&lt;br /&gt;
 &lt;br /&gt;
        // Inhalt der Bestätigung&lt;br /&gt;
        $mailbody = &amp;#039;Vielen Dank für Ihre Email. Wir werden uns in Kürze bei Ihnen melden.&amp;#039;;&lt;br /&gt;
 &lt;br /&gt;
        // Bestätigung verschicken&lt;br /&gt;
        if (@mail( $email, &amp;quot;Die Firma Max Mustermann bedankt sich&amp;quot;, $mailbody, $mailheader ))&lt;br /&gt;
        {&lt;br /&gt;
            // Bestätigung wurde verschickt&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Das ist im Prinzip der selbe Code wie zuvor in der Text Mail. Es werden lediglich einige Kleinigkeiten im Mail Header angepasst, damit der Benutzer auch weiß, wer ihm schreibt und wohin er antworten kann.&lt;br /&gt;
&lt;br /&gt;
Damit sollten die meisten Fragen zum Thema &amp;quot;Wie versendet man eine Email mit PHP&amp;quot; geklärt sein. Wer Fragen oder Anregungen hat, kann sie gerne in diesem Thread stellen.&lt;/div&gt;</summary>
		<author><name>85.216.68.159</name></author>
	</entry>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=Google_Maps_-_Snippets&amp;diff=21350</id>
		<title>Google Maps - Snippets</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=Google_Maps_-_Snippets&amp;diff=21350"/>
		<updated>2016-01-20T10:32:10Z</updated>

		<summary type="html">&lt;p&gt;85.216.68.159: /* Link auf Google Maps Routenplaner */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Link auf Google Maps Routenplaner ==&lt;br /&gt;
Beispiel einfacher Link:&lt;br /&gt;
 https://www.google.de/maps/dir//Rinckstr.+7-11+D-83435+Bad+Reichenhall&lt;br /&gt;
Beispiel Button auf Google Karte:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html5&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;gmroute&amp;quot; style=&amp;quot;z-index: 30001;position: relative;height: 30px;right: 40px;top: 40px;&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;a href=&amp;quot;https://www.google.de/maps/dir//Am+Herrenberg+7-9+D-86932+Pürgen&amp;quot; target=&amp;quot;_blank&amp;quot;  style=&amp;quot;background-color: #5B5B5B;color:white; border: 1px solid #777;float: right;padding: 8px;&amp;quot;&amp;gt;&lt;br /&gt;
    Route mit Google Maps planen.&lt;br /&gt;
    &amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Einfache Karte ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE html&amp;gt;&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
  &amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;Simple Map&amp;lt;/title&amp;gt;&lt;br /&gt;
    &amp;lt;meta name=&amp;quot;viewport&amp;quot; content=&amp;quot;initial-scale=1.0, user-scalable=no&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;meta charset=&amp;quot;utf-8&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;style&amp;gt;&lt;br /&gt;
      html, body, #map-canvas {&lt;br /&gt;
        height: 100%;&lt;br /&gt;
        margin: 0px;&lt;br /&gt;
        padding: 0px&lt;br /&gt;
      }&lt;br /&gt;
    &amp;lt;/style&amp;gt;&lt;br /&gt;
    &amp;lt;script src=&amp;quot;https://maps.googleapis.com/maps/api/js?v=3.exp&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
    &amp;lt;script&amp;gt;&lt;br /&gt;
var map;&lt;br /&gt;
function initialize() {&lt;br /&gt;
  var mapOptions = {&lt;br /&gt;
    zoom: 8,&lt;br /&gt;
    center: new google.maps.LatLng(-34.397, 150.644)&lt;br /&gt;
  };&lt;br /&gt;
  map = new google.maps.Map(document.getElementById(&amp;#039;map-canvas&amp;#039;),&lt;br /&gt;
      mapOptions);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
google.maps.event.addDomListener(window, &amp;#039;load&amp;#039;, initialize);&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;/script&amp;gt;&lt;br /&gt;
  &amp;lt;/head&amp;gt;&lt;br /&gt;
  &amp;lt;body&amp;gt;&lt;br /&gt;
    &amp;lt;div id=&amp;quot;map-canvas&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Zusätzliche Google Maps Libraries einbinden ==&lt;br /&gt;
Beispiel:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;script src=&amp;quot;http://maps.googleapis.com/maps/api/js?sensor=false&amp;amp;libraries=drawing,places&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>85.216.68.159</name></author>
	</entry>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=Google_Maps_-_Snippets&amp;diff=21349</id>
		<title>Google Maps - Snippets</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=Google_Maps_-_Snippets&amp;diff=21349"/>
		<updated>2016-01-20T10:31:41Z</updated>

		<summary type="html">&lt;p&gt;85.216.68.159: /* Link auf Google Maps Routenplaner */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Link auf Google Maps Routenplaner ==&lt;br /&gt;
Beispiel einfacher Link:&lt;br /&gt;
 https://www.google.de/maps/dir//Rinckstr.+7-11+D-83435+Bad+Reichenhall&lt;br /&gt;
Beispiel Button auf Google Karte:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;gmroute&amp;quot; style=&amp;quot;z-index: 30001;position: relative;height: 30px;right: 40px;top: 40px;&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;a href=&amp;quot;https://www.google.de/maps/dir//Am+Herrenberg+7-9+D-86932+Pürgen&amp;quot; target=&amp;quot;_blank&amp;quot;  style=&amp;quot;background-color: #5B5B5B;color:white; border: 1px solid #777;float: right;padding: 8px;&amp;quot;&amp;gt;&lt;br /&gt;
    Route mit Google Maps planen.&lt;br /&gt;
    &amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Einfache Karte ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE html&amp;gt;&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
  &amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;Simple Map&amp;lt;/title&amp;gt;&lt;br /&gt;
    &amp;lt;meta name=&amp;quot;viewport&amp;quot; content=&amp;quot;initial-scale=1.0, user-scalable=no&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;meta charset=&amp;quot;utf-8&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;style&amp;gt;&lt;br /&gt;
      html, body, #map-canvas {&lt;br /&gt;
        height: 100%;&lt;br /&gt;
        margin: 0px;&lt;br /&gt;
        padding: 0px&lt;br /&gt;
      }&lt;br /&gt;
    &amp;lt;/style&amp;gt;&lt;br /&gt;
    &amp;lt;script src=&amp;quot;https://maps.googleapis.com/maps/api/js?v=3.exp&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
    &amp;lt;script&amp;gt;&lt;br /&gt;
var map;&lt;br /&gt;
function initialize() {&lt;br /&gt;
  var mapOptions = {&lt;br /&gt;
    zoom: 8,&lt;br /&gt;
    center: new google.maps.LatLng(-34.397, 150.644)&lt;br /&gt;
  };&lt;br /&gt;
  map = new google.maps.Map(document.getElementById(&amp;#039;map-canvas&amp;#039;),&lt;br /&gt;
      mapOptions);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
google.maps.event.addDomListener(window, &amp;#039;load&amp;#039;, initialize);&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;/script&amp;gt;&lt;br /&gt;
  &amp;lt;/head&amp;gt;&lt;br /&gt;
  &amp;lt;body&amp;gt;&lt;br /&gt;
    &amp;lt;div id=&amp;quot;map-canvas&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Zusätzliche Google Maps Libraries einbinden ==&lt;br /&gt;
Beispiel:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;script src=&amp;quot;http://maps.googleapis.com/maps/api/js?sensor=false&amp;amp;libraries=drawing,places&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>85.216.68.159</name></author>
	</entry>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=Google_Maps_-_Snippets&amp;diff=21348</id>
		<title>Google Maps - Snippets</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=Google_Maps_-_Snippets&amp;diff=21348"/>
		<updated>2016-01-20T10:25:02Z</updated>

		<summary type="html">&lt;p&gt;85.216.68.159: /* Link auf Google Maps Routenplaner */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Link auf Google Maps Routenplaner ==&lt;br /&gt;
Beispiel einfacher Link:&lt;br /&gt;
 https://www.google.de/maps/dir//Rinckstr.+7-11+D-83435+Bad+Reichenhall&lt;br /&gt;
Beispiel Button:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;gmroute&amp;quot; style=&amp;quot;z-index: 30001;position: relative;height: 24px;right: 10px;top: 40px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot;https://www.google.de/maps/dir//Rinckstr.+7-11+D-83435+Bad+Reichenhall&amp;quot; target=&amp;quot;_blank&amp;quot; &lt;br /&gt;
style=&amp;quot;background-color: #FFF;float: right;padding: 0px 4px;&amp;quot;&amp;gt;&lt;br /&gt;
Route mit Google Maps planen.&lt;br /&gt;
&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Einfache Karte ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE html&amp;gt;&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
  &amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;Simple Map&amp;lt;/title&amp;gt;&lt;br /&gt;
    &amp;lt;meta name=&amp;quot;viewport&amp;quot; content=&amp;quot;initial-scale=1.0, user-scalable=no&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;meta charset=&amp;quot;utf-8&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;style&amp;gt;&lt;br /&gt;
      html, body, #map-canvas {&lt;br /&gt;
        height: 100%;&lt;br /&gt;
        margin: 0px;&lt;br /&gt;
        padding: 0px&lt;br /&gt;
      }&lt;br /&gt;
    &amp;lt;/style&amp;gt;&lt;br /&gt;
    &amp;lt;script src=&amp;quot;https://maps.googleapis.com/maps/api/js?v=3.exp&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
    &amp;lt;script&amp;gt;&lt;br /&gt;
var map;&lt;br /&gt;
function initialize() {&lt;br /&gt;
  var mapOptions = {&lt;br /&gt;
    zoom: 8,&lt;br /&gt;
    center: new google.maps.LatLng(-34.397, 150.644)&lt;br /&gt;
  };&lt;br /&gt;
  map = new google.maps.Map(document.getElementById(&amp;#039;map-canvas&amp;#039;),&lt;br /&gt;
      mapOptions);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
google.maps.event.addDomListener(window, &amp;#039;load&amp;#039;, initialize);&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;/script&amp;gt;&lt;br /&gt;
  &amp;lt;/head&amp;gt;&lt;br /&gt;
  &amp;lt;body&amp;gt;&lt;br /&gt;
    &amp;lt;div id=&amp;quot;map-canvas&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Zusätzliche Google Maps Libraries einbinden ==&lt;br /&gt;
Beispiel:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;script src=&amp;quot;http://maps.googleapis.com/maps/api/js?sensor=false&amp;amp;libraries=drawing,places&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>85.216.68.159</name></author>
	</entry>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=Google_Maps_-_Snippets&amp;diff=21347</id>
		<title>Google Maps - Snippets</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=Google_Maps_-_Snippets&amp;diff=21347"/>
		<updated>2016-01-20T10:05:56Z</updated>

		<summary type="html">&lt;p&gt;85.216.68.159: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Link auf Google Maps Routenplaner ==&lt;br /&gt;
Beispiel einfacher Link:&lt;br /&gt;
 https://www.google.de/maps/dir//Rinckstr.+7-11+D-83435+Bad+Reichenhall&lt;br /&gt;
Beispiel Button:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot;https://www.google.de/maps/dir//Rinckstr.+7-11+D-83435+Bad+Reichenhall&amp;quot; target=&amp;quot;_blank&amp;quot; style=&amp;quot;	background-color: #FFF;float: right;	padding: 0px 4px;&amp;quot;&amp;gt;&lt;br /&gt;
  Route mit Google Maps planen.&lt;br /&gt;
&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Einfache Karte ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE html&amp;gt;&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
  &amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;Simple Map&amp;lt;/title&amp;gt;&lt;br /&gt;
    &amp;lt;meta name=&amp;quot;viewport&amp;quot; content=&amp;quot;initial-scale=1.0, user-scalable=no&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;meta charset=&amp;quot;utf-8&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;style&amp;gt;&lt;br /&gt;
      html, body, #map-canvas {&lt;br /&gt;
        height: 100%;&lt;br /&gt;
        margin: 0px;&lt;br /&gt;
        padding: 0px&lt;br /&gt;
      }&lt;br /&gt;
    &amp;lt;/style&amp;gt;&lt;br /&gt;
    &amp;lt;script src=&amp;quot;https://maps.googleapis.com/maps/api/js?v=3.exp&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
    &amp;lt;script&amp;gt;&lt;br /&gt;
var map;&lt;br /&gt;
function initialize() {&lt;br /&gt;
  var mapOptions = {&lt;br /&gt;
    zoom: 8,&lt;br /&gt;
    center: new google.maps.LatLng(-34.397, 150.644)&lt;br /&gt;
  };&lt;br /&gt;
  map = new google.maps.Map(document.getElementById(&amp;#039;map-canvas&amp;#039;),&lt;br /&gt;
      mapOptions);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
google.maps.event.addDomListener(window, &amp;#039;load&amp;#039;, initialize);&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;/script&amp;gt;&lt;br /&gt;
  &amp;lt;/head&amp;gt;&lt;br /&gt;
  &amp;lt;body&amp;gt;&lt;br /&gt;
    &amp;lt;div id=&amp;quot;map-canvas&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Zusätzliche Google Maps Libraries einbinden ==&lt;br /&gt;
Beispiel:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;script src=&amp;quot;http://maps.googleapis.com/maps/api/js?sensor=false&amp;amp;libraries=drawing,places&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>85.216.68.159</name></author>
	</entry>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=Thunderbird_-_Rundmails_mit_Mail_Merge&amp;diff=21343</id>
		<title>Thunderbird - Rundmails mit Mail Merge</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=Thunderbird_-_Rundmails_mit_Mail_Merge&amp;diff=21343"/>
		<updated>2016-01-01T13:50:03Z</updated>

		<summary type="html">&lt;p&gt;85.216.68.159: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Mit dem AddOn Mail Merge kann man personalisierte Rundmails mit Adressen aus .csv Dateien oder dem Adressbuch versenden.&lt;br /&gt;
&lt;br /&gt;
So gehts:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://addons.mozilla.org/de/thunderbird/addon/mail-merge/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Kurzanleitung mit .csv&lt;br /&gt;
* csv erstellen z.B.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;quot;FirstName&amp;quot;,&amp;quot;LastName&amp;quot;,&amp;quot;Sex&amp;quot;,&amp;quot;Email&amp;quot;&lt;br /&gt;
&amp;quot;Stephan&amp;quot;,&amp;quot;Schlegel&amp;quot;,&amp;quot;m&amp;quot;,&amp;quot;stephanschlegel@gmx.de&amp;quot;&lt;br /&gt;
&amp;quot;Finn&amp;quot;,&amp;quot;Schlegel&amp;quot;,&amp;quot;m&amp;quot;,&amp;quot;ich@finnschlegel.de&amp;quot;&lt;br /&gt;
&amp;quot;Stephanie&amp;quot;,&amp;quot;Schlegel&amp;quot;,&amp;quot;f&amp;quot;,&amp;quot;schlegel@geo-bit.de&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Neue E-Mail&lt;br /&gt;
* To Feld:  &lt;br /&gt;
Beispiel&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 {{FirstName}} {{LastName}} &amp;lt;{{Email}}&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Anschreiben z.B.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{{Sex|m|Lieber|Liebe}} {{FirstName}},&lt;br /&gt;
hier kommt meine Rundmail&lt;br /&gt;
&lt;br /&gt;
Dein Steff&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>85.216.68.159</name></author>
	</entry>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=Thunderbird_-_Rundmails_mit_Mail_Merge&amp;diff=21342</id>
		<title>Thunderbird - Rundmails mit Mail Merge</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=Thunderbird_-_Rundmails_mit_Mail_Merge&amp;diff=21342"/>
		<updated>2016-01-01T13:49:34Z</updated>

		<summary type="html">&lt;p&gt;85.216.68.159: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Mit dem AddOn Mail Merge kann man personalisierte Rundmails mit Adressen aus .csv Dateien oder dem Adressbuch versenden.&lt;br /&gt;
&lt;br /&gt;
So gehts:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://addons.mozilla.org/de/thunderbird/addon/mail-merge/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Kurzanleitung mit .csv&lt;br /&gt;
* csv erstellen z.B.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;quot;FirstName&amp;quot;,&amp;quot;LastName&amp;quot;,&amp;quot;Sex&amp;quot;,&amp;quot;Email&amp;quot;&lt;br /&gt;
&amp;quot;Stephan&amp;quot;,&amp;quot;Schlegel&amp;quot;,&amp;quot;m&amp;quot;,&amp;quot;stephanschlegel@gmx.de&amp;quot;&lt;br /&gt;
&amp;quot;Finn&amp;quot;,&amp;quot;Schlegel&amp;quot;,&amp;quot;m&amp;quot;,&amp;quot;ich@finnschlegel.de&amp;quot;&lt;br /&gt;
&amp;quot;Stephanie&amp;quot;,&amp;quot;Schlegel&amp;quot;,&amp;quot;f&amp;quot;,&amp;quot;schlegel@geo-bit.de&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Neue E-Mail&lt;br /&gt;
* To Feld:  &lt;br /&gt;
 {{FirstName}} {{LastName}} &amp;lt;{{Email}}&amp;gt;&lt;br /&gt;
* Anschreiben z.B.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{{Sex|m|Lieber|Liebe}} {{FirstName}},&lt;br /&gt;
hier kommt meine Rundmail&lt;br /&gt;
&lt;br /&gt;
Dein Steff&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>85.216.68.159</name></author>
	</entry>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=Thunderbird_-_Rundmails_mit_Mail_Merge&amp;diff=21341</id>
		<title>Thunderbird - Rundmails mit Mail Merge</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=Thunderbird_-_Rundmails_mit_Mail_Merge&amp;diff=21341"/>
		<updated>2016-01-01T13:38:02Z</updated>

		<summary type="html">&lt;p&gt;85.216.68.159: Die Seite wurde neu angelegt: „Mit dem AddOn Mail Merge kann man personalisierte Rundmails mit Adressen aus .csv Dateien oder dem Adressbuch versenden.  So gehts:  https://addons.mozilla.org…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Mit dem AddOn Mail Merge kann man personalisierte Rundmails mit Adressen aus .csv Dateien oder dem Adressbuch versenden.&lt;br /&gt;
&lt;br /&gt;
So gehts:&lt;br /&gt;
&lt;br /&gt;
https://addons.mozilla.org/de/thunderbird/addon/mail-merge/&lt;/div&gt;</summary>
		<author><name>85.216.68.159</name></author>
	</entry>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=Mobile.de&amp;diff=21340</id>
		<title>Mobile.de</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=Mobile.de&amp;diff=21340"/>
		<updated>2015-12-28T11:19:45Z</updated>

		<summary type="html">&lt;p&gt;85.216.68.159: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Mobile.de Seller API - Update 2015&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    Direct ad URL was moved from http://services.mobile.de/1.0.0/ad/... to https://services.mobile.de/search-api/ad/....&lt;br /&gt;
    Search URL was moved from http://services.mobile.de/1.0.0/ad/search?... to https://services.mobile.de/search-api/search?....&lt;br /&gt;
    https://services.mobile.de/search-api/search?... returns a search-result -XML-element (instead of a result-XML-element which was returned by http://services.mobile.de/1.0.0/ad/search?...). Compared to result, search-result has elements instead of attributes, the ad list is wrapped into an ads-element and an errors-element was added which contains a list of non-fatal errors (e.g. usage of deprecated search parameters). See http://services.mobile.de/schema/search-1.0.xsd.&lt;br /&gt;
    Old http://services.mobile.de/1.0.0/ad/... URL is supported till end of 2015.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Mobile.de API - XML über PHP einlesen und ausgeben ==&lt;br /&gt;
[[Mobile.de API - XML über PHP einlesen und ausgeben]]&lt;br /&gt;
&lt;br /&gt;
== mobile.de - Händlerseite Daten über JSON / JavaScript ==&lt;br /&gt;
Beispiel: http://home.mobile.de/WETZEL-MOTORS&lt;br /&gt;
&lt;br /&gt;
Die Seite führt einen JSON Aufruf auf und baut die Darstellung aus den gelieferten Daten auf. Die Daten können also auch für eine eigene Seite genutzt werden.&lt;br /&gt;
&lt;br /&gt;
JSON Aufruf (der letzte Parameter ist nicht notwendig:&lt;br /&gt;
 http://home.mobile.de/home/ses.html?customerId=461731&amp;amp;json=true&amp;amp;_=1372927194116 &lt;br /&gt;
&lt;br /&gt;
Rückgabe (Beispiel)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
	&amp;quot;searchMetadata&amp;quot;: {&lt;br /&gt;
		&amp;quot;resultsFound&amp;quot;: 20,&lt;br /&gt;
		&amp;quot;totalResults&amp;quot;: 99,&lt;br /&gt;
		&amp;quot;currentPage&amp;quot;: 1,&lt;br /&gt;
		&amp;quot;nextPage&amp;quot;: 2,&lt;br /&gt;
		&amp;quot;moreResultsAvailable&amp;quot;: true&lt;br /&gt;
	},&lt;br /&gt;
	&amp;quot;customerId&amp;quot;: 461731,&lt;br /&gt;
	&amp;quot;searchReferenceData&amp;quot;: {&lt;br /&gt;
		&amp;quot;segments&amp;quot;: [{&lt;br /&gt;
			&amp;quot;key&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;Beliebig&amp;quot;&lt;br /&gt;
		}, {&lt;br /&gt;
			&amp;quot;key&amp;quot;: &amp;quot;Car&amp;quot;,&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;Pkw&amp;quot;&lt;br /&gt;
		}],&lt;br /&gt;
		&amp;quot;categorys&amp;quot;: [{&lt;br /&gt;
			&amp;quot;key&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;Beliebig&amp;quot;&lt;br /&gt;
		}, {&lt;br /&gt;
			&amp;quot;key&amp;quot;: &amp;quot;Cabrio&amp;quot;,&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;Cabrio/Roadster (Pkw)&amp;quot;&lt;br /&gt;
		}, ... {&lt;br /&gt;
			&amp;quot;key&amp;quot;: &amp;quot;Van&amp;quot;,&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;Van/Kleinbus (Pkw)&amp;quot;&lt;br /&gt;
		}],&lt;br /&gt;
		&amp;quot;makes&amp;quot;: [{&lt;br /&gt;
			&amp;quot;key&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;Beliebig&amp;quot;&lt;br /&gt;
		}, {&lt;br /&gt;
			&amp;quot;key&amp;quot;: &amp;quot;9000&amp;quot;,&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;Ford&amp;quot;&lt;br /&gt;
		}, ... {&lt;br /&gt;
			&amp;quot;key&amp;quot;: &amp;quot;25100&amp;quot;,&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;Volvo&amp;quot;&lt;br /&gt;
		}],&lt;br /&gt;
		&amp;quot;models&amp;quot;: {&lt;br /&gt;
			&amp;quot;17200&amp;quot;: [{&lt;br /&gt;
				&amp;quot;key&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
				&amp;quot;value&amp;quot;: &amp;quot;Beliebig&amp;quot;&lt;br /&gt;
			}, {&lt;br /&gt;
				&amp;quot;key&amp;quot;: &amp;quot;20&amp;quot;,&lt;br /&gt;
				&amp;quot;value&amp;quot;: &amp;quot;C 230&amp;quot;&lt;br /&gt;
			}],&lt;br /&gt;
			&amp;quot;19000&amp;quot;: [{&lt;br /&gt;
				&amp;quot;key&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
				&amp;quot;value&amp;quot;: &amp;quot;Beliebig&amp;quot;&lt;br /&gt;
			}, {&lt;br /&gt;
				&amp;quot;key&amp;quot;: &amp;quot;38&amp;quot;,&lt;br /&gt;
				&amp;quot;value&amp;quot;: &amp;quot;Adam&amp;quot;&lt;br /&gt;
			}, ... {&lt;br /&gt;
				&amp;quot;key&amp;quot;: &amp;quot;36&amp;quot;,&lt;br /&gt;
				&amp;quot;value&amp;quot;: &amp;quot;Zafira Tourer&amp;quot;&lt;br /&gt;
			}],&lt;br /&gt;
			...&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;sortOptions&amp;quot;: [{&lt;br /&gt;
			&amp;quot;key&amp;quot;: &amp;quot;make&amp;quot;,&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;Marke&amp;quot;&lt;br /&gt;
		}, {&lt;br /&gt;
			&amp;quot;key&amp;quot;: &amp;quot;price&amp;quot;,&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;Preis aufsteigend&amp;quot;&lt;br /&gt;
		}],&lt;br /&gt;
		&amp;quot;minPriceValues&amp;quot;: [{&lt;br /&gt;
			&amp;quot;key&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;Beliebig&amp;quot;&lt;br /&gt;
		}, {&lt;br /&gt;
			&amp;quot;key&amp;quot;: &amp;quot;500&amp;quot;,&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;500 EUR&amp;quot;&lt;br /&gt;
		}, ... {&lt;br /&gt;
			&amp;quot;key&amp;quot;: &amp;quot;60000&amp;quot;,&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;60.000 EUR&amp;quot;&lt;br /&gt;
		}],&lt;br /&gt;
		&amp;quot;maxPriceValues&amp;quot;: [{&lt;br /&gt;
			&amp;quot;key&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;Beliebig&amp;quot;&lt;br /&gt;
		}, {&lt;br /&gt;
			&amp;quot;key&amp;quot;: &amp;quot;501&amp;quot;,&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;501 EUR&amp;quot;&lt;br /&gt;
		}, ... {&lt;br /&gt;
			&amp;quot;key&amp;quot;: &amp;quot;60001&amp;quot;,&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;60.001 EUR&amp;quot;&lt;br /&gt;
		}],&lt;br /&gt;
		&amp;quot;segmentCarAvailable&amp;quot;: true,&lt;br /&gt;
		&amp;quot;segmentTruckAvailable&amp;quot;: false,&lt;br /&gt;
		&amp;quot;segmentMotorhomeAvailable&amp;quot;: false,&lt;br /&gt;
		&amp;quot;segmentMotorbikeAvailable&amp;quot;: false,&lt;br /&gt;
		&amp;quot;searchForm&amp;quot;: {&lt;br /&gt;
			&amp;quot;sortBy&amp;quot;: &amp;quot;make&amp;quot;,&lt;br /&gt;
			&amp;quot;pageNumber&amp;quot;: 1,&lt;br /&gt;
			&amp;quot;pageSize&amp;quot;: 20,&lt;br /&gt;
			&amp;quot;fetchMore&amp;quot;: false,&lt;br /&gt;
			&amp;quot;initial&amp;quot;: true&lt;br /&gt;
		}&lt;br /&gt;
	},&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	&amp;quot;prominent&amp;quot;: {&lt;br /&gt;
		&amp;quot;image&amp;quot;: {&lt;br /&gt;
			&amp;quot;src&amp;quot;: &amp;quot;http://i.ebayimg.com/00/$T2eC16NHJHgE9n0yEiwMBRTUm2lVrg~~_24.JPG&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;fuelType&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;Benzin&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;power&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;51 kW (69 PS)&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;transmission&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;Schaltgetriebe&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;lastSeenAt&amp;quot;: false,&lt;br /&gt;
		&amp;quot;adId&amp;quot;: 176596954,&lt;br /&gt;
		&amp;quot;priceModel&amp;quot;: {&lt;br /&gt;
			&amp;quot;type&amp;quot;: {},&lt;br /&gt;
			&amp;quot;secondaryPrice&amp;quot;: {&lt;br /&gt;
				&amp;quot;countryOfSale&amp;quot;: {&lt;br /&gt;
					&amp;quot;value&amp;quot;: &amp;quot;9.235 EUR (Netto)&amp;quot;&lt;br /&gt;
				},&lt;br /&gt;
				&amp;quot;countryOfOrigin&amp;quot;: {},&lt;br /&gt;
				&amp;quot;net&amp;quot;: true&lt;br /&gt;
			},&lt;br /&gt;
			&amp;quot;primaryPrice&amp;quot;: {&lt;br /&gt;
				&amp;quot;countryOfSale&amp;quot;: {&lt;br /&gt;
					&amp;quot;value&amp;quot;: &amp;quot;10.990 EUR (Brutto)&amp;quot;&lt;br /&gt;
				},&lt;br /&gt;
				&amp;quot;countryOfOrigin&amp;quot;: {},&lt;br /&gt;
				&amp;quot;net&amp;quot;: false&lt;br /&gt;
			},&lt;br /&gt;
			&amp;quot;previousPrice&amp;quot;: {},&lt;br /&gt;
			&amp;quot;deliveryCost&amp;quot;: {},&lt;br /&gt;
			&amp;quot;vatRate&amp;quot;: {&lt;br /&gt;
				&amp;quot;value&amp;quot;: &amp;quot;19,00% MwSt.&amp;quot;&lt;br /&gt;
			},&lt;br /&gt;
			&amp;quot;infoText&amp;quot;: {},&lt;br /&gt;
			&amp;quot;vatReclaimable&amp;quot;: true&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;makeModelDescription&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;Kia Picanto 1.0 Edition 7 Navi Klima  MP3&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;bodyType&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;Kleinwagen&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;usageType&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;Tageszulassung&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;firstRegistration&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;EZ 03/2013&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;mileage&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;9 km&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;fuelConsumption&amp;quot;: [{&lt;br /&gt;
			&amp;quot;label&amp;quot;: &amp;quot;Kraftstoffverbr. komb.&amp;quot;,&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;4,4 l/100 km&amp;quot;,&lt;br /&gt;
			&amp;quot;link&amp;quot;: {}&lt;br /&gt;
		}, {&lt;br /&gt;
			&amp;quot;label&amp;quot;: &amp;quot;CO&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;-Emissionen komb.&amp;quot;,&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;103 g/km&amp;quot;,&lt;br /&gt;
			&amp;quot;link&amp;quot;: {}&lt;br /&gt;
		}],&lt;br /&gt;
		&amp;quot;attributes&amp;quot;: [{&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;Schaltgetriebe&amp;quot;&lt;br /&gt;
		}, {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;51 kW (69 PS)&amp;quot;&lt;br /&gt;
		}, {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;Benzin&amp;quot;&lt;br /&gt;
		}, {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;Klimaanlage&amp;quot;&lt;br /&gt;
		}, {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;&amp;quot;&lt;br /&gt;
		}],&lt;br /&gt;
		&amp;quot;usedCarSeal&amp;quot;: {&lt;br /&gt;
			&amp;quot;link&amp;quot;: {}&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;videoLinkPresent&amp;quot;: false,&lt;br /&gt;
		&amp;quot;newFlagged&amp;quot;: false,&lt;br /&gt;
		&amp;quot;advice&amp;quot;: {}&lt;br /&gt;
	},&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	&amp;quot;searchResultItems&amp;quot;: [{&lt;br /&gt;
		&amp;quot;image&amp;quot;: {&lt;br /&gt;
			&amp;quot;src&amp;quot;: &amp;quot;http://i.ebayimg.com/00/s/NzY4WDEwMjQ=/$T2eC16d,!w0E9szN,Fj3BRzcFddI7g~~48_18.JPG&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;fuelType&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;Benzin&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;power&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;74 kW (101 PS)&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;transmission&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;Schaltgetriebe&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;climatisation&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;Klimaanlage&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;adId&amp;quot;: 181051884,&lt;br /&gt;
		&amp;quot;priceModel&amp;quot;: {&lt;br /&gt;
			&amp;quot;type&amp;quot;: {},&lt;br /&gt;
			&amp;quot;secondaryPrice&amp;quot;: {&lt;br /&gt;
				&amp;quot;countryOfSale&amp;quot;: {},&lt;br /&gt;
				&amp;quot;countryOfOrigin&amp;quot;: {},&lt;br /&gt;
				&amp;quot;net&amp;quot;: true&lt;br /&gt;
			},&lt;br /&gt;
			&amp;quot;primaryPrice&amp;quot;: {&lt;br /&gt;
				&amp;quot;countryOfSale&amp;quot;: {&lt;br /&gt;
					&amp;quot;value&amp;quot;: &amp;quot;5.490 EUR&amp;quot;&lt;br /&gt;
				},&lt;br /&gt;
				&amp;quot;countryOfOrigin&amp;quot;: {},&lt;br /&gt;
				&amp;quot;net&amp;quot;: false&lt;br /&gt;
			},&lt;br /&gt;
			&amp;quot;previousPrice&amp;quot;: {},&lt;br /&gt;
			&amp;quot;deliveryCost&amp;quot;: {},&lt;br /&gt;
			&amp;quot;vatRate&amp;quot;: {&lt;br /&gt;
				&amp;quot;value&amp;quot;: &amp;quot;MwSt. nicht ausweisbar&amp;quot;&lt;br /&gt;
			},&lt;br /&gt;
			&amp;quot;infoText&amp;quot;: {},&lt;br /&gt;
			&amp;quot;vatReclaimable&amp;quot;: false&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;makeModelDescription&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;Ford Focus 1.6 16V Trend Navi Klima SHZ Alu MP3 USB&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;bodyType&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;Limousine&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;usageType&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;Gebrauchtfahrzeug&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;firstRegistration&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;EZ 12/2004&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;mileage&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;58.000 km&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;fuelConsumption&amp;quot;: [{&lt;br /&gt;
			&amp;quot;label&amp;quot;: &amp;quot;Kraftstoffverbr. komb.&amp;quot;,&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;ca. 6,7 l/100 km&amp;quot;,&lt;br /&gt;
			&amp;quot;link&amp;quot;: {}&lt;br /&gt;
		}, {&lt;br /&gt;
			&amp;quot;label&amp;quot;: &amp;quot;CO&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;-Emissionen komb.&amp;quot;,&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;ca. 161 g/km&amp;quot;,&lt;br /&gt;
			&amp;quot;link&amp;quot;: {}&lt;br /&gt;
		}],&lt;br /&gt;
		&amp;quot;usedCarSeal&amp;quot;: {&lt;br /&gt;
			&amp;quot;link&amp;quot;: {}&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;videoLinkPresent&amp;quot;: false,&lt;br /&gt;
		&amp;quot;newFlagged&amp;quot;: false,&lt;br /&gt;
		&amp;quot;advice&amp;quot;: {}&lt;br /&gt;
	}, {&lt;br /&gt;
		&amp;quot;image&amp;quot;: {&lt;br /&gt;
			&amp;quot;src&amp;quot;: &amp;quot;http://i.ebayimg.com/00/s/NzY4WDEwMjQ=/$T2eC16hHJHMFH!0UWCUrBRzcGRtcG!~~48_18.JPG&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;fuelType&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;Benzin&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;power&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;49 kW (67 PS)&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;transmission&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;Schaltgetriebe&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;climatisation&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;Klimaanlage&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;adId&amp;quot;: 181051607,&lt;br /&gt;
		&amp;quot;priceModel&amp;quot;: {&lt;br /&gt;
			&amp;quot;type&amp;quot;: {},&lt;br /&gt;
			&amp;quot;secondaryPrice&amp;quot;: {&lt;br /&gt;
				&amp;quot;countryOfSale&amp;quot;: {},&lt;br /&gt;
				&amp;quot;countryOfOrigin&amp;quot;: {},&lt;br /&gt;
				&amp;quot;net&amp;quot;: true&lt;br /&gt;
			},&lt;br /&gt;
			&amp;quot;primaryPrice&amp;quot;: {&lt;br /&gt;
				&amp;quot;countryOfSale&amp;quot;: {&lt;br /&gt;
					&amp;quot;value&amp;quot;: &amp;quot;4.880 EUR&amp;quot;&lt;br /&gt;
				},&lt;br /&gt;
				&amp;quot;countryOfOrigin&amp;quot;: {},&lt;br /&gt;
				&amp;quot;net&amp;quot;: false&lt;br /&gt;
			},&lt;br /&gt;
			&amp;quot;previousPrice&amp;quot;: {},&lt;br /&gt;
			&amp;quot;deliveryCost&amp;quot;: {},&lt;br /&gt;
			&amp;quot;vatRate&amp;quot;: {&lt;br /&gt;
				&amp;quot;value&amp;quot;: &amp;quot;MwSt. nicht ausweisbar&amp;quot;&lt;br /&gt;
			},&lt;br /&gt;
			&amp;quot;infoText&amp;quot;: {},&lt;br /&gt;
			&amp;quot;vatReclaimable&amp;quot;: false&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;makeModelDescription&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;Hyundai Getz 1.1 Navi Klima Servo ZV Scheckh. Bluetooth&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;bodyType&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;Kleinwagen&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;usageType&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;Gebrauchtfahrzeug&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;firstRegistration&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;EZ 05/2008&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;mileage&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;51.000 km&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;fuelConsumption&amp;quot;: [{&lt;br /&gt;
			&amp;quot;label&amp;quot;: &amp;quot;Kraftstoffverbr. komb.&amp;quot;,&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;ca. 5,5 l/100 km&amp;quot;,&lt;br /&gt;
			&amp;quot;link&amp;quot;: {}&lt;br /&gt;
		}, {&lt;br /&gt;
			&amp;quot;label&amp;quot;: &amp;quot;CO&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;-Emissionen komb.&amp;quot;,&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;ca. 130 g/km&amp;quot;,&lt;br /&gt;
			&amp;quot;link&amp;quot;: {}&lt;br /&gt;
		}],&lt;br /&gt;
		&amp;quot;usedCarSeal&amp;quot;: {&lt;br /&gt;
			&amp;quot;link&amp;quot;: {}&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;videoLinkPresent&amp;quot;: false,&lt;br /&gt;
		&amp;quot;newFlagged&amp;quot;: false,&lt;br /&gt;
		&amp;quot;advice&amp;quot;: {}&lt;br /&gt;
	}, {&lt;br /&gt;
		&amp;quot;image&amp;quot;: {&lt;br /&gt;
			&amp;quot;src&amp;quot;: &amp;quot;http://i.ebayimg.com/00/s/NzEyWDEwMjQ=/$T2eC16hHJHEE9ny2tll!BR(QZPtrwg~~48_18.JPG&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;fuelType&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;Benzin&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;power&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;120 kW (163 PS)&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;transmission&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;Schaltgetriebe&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;climatisation&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;Klimaanlage&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;adId&amp;quot;: 177004285,&lt;br /&gt;
		&amp;quot;priceModel&amp;quot;: {&lt;br /&gt;
			&amp;quot;type&amp;quot;: {},&lt;br /&gt;
			&amp;quot;secondaryPrice&amp;quot;: {&lt;br /&gt;
				&amp;quot;countryOfSale&amp;quot;: {&lt;br /&gt;
					&amp;quot;value&amp;quot;: &amp;quot;15.790 EUR (Netto)&amp;quot;&lt;br /&gt;
				},&lt;br /&gt;
				&amp;quot;countryOfOrigin&amp;quot;: {},&lt;br /&gt;
				&amp;quot;net&amp;quot;: true&lt;br /&gt;
			},&lt;br /&gt;
			&amp;quot;primaryPrice&amp;quot;: {&lt;br /&gt;
				&amp;quot;countryOfSale&amp;quot;: {&lt;br /&gt;
					&amp;quot;value&amp;quot;: &amp;quot;18.790 EUR (Brutto)&amp;quot;&lt;br /&gt;
				},&lt;br /&gt;
				&amp;quot;countryOfOrigin&amp;quot;: {},&lt;br /&gt;
				&amp;quot;net&amp;quot;: false&lt;br /&gt;
			},&lt;br /&gt;
			&amp;quot;previousPrice&amp;quot;: {},&lt;br /&gt;
			&amp;quot;deliveryCost&amp;quot;: {},&lt;br /&gt;
			&amp;quot;vatRate&amp;quot;: {&lt;br /&gt;
				&amp;quot;value&amp;quot;: &amp;quot;19,00% MwSt.&amp;quot;&lt;br /&gt;
			},&lt;br /&gt;
			&amp;quot;infoText&amp;quot;: {},&lt;br /&gt;
			&amp;quot;vatReclaimable&amp;quot;: true&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;makeModelDescription&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;Hyundai ix35 2.0 4WD Navi Klima ESP Tagfahrlicht 16Zoll&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;bodyType&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;Geländewagen/Pickup&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;usageType&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;Tageszulassung&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;firstRegistration&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;EZ 03/2013&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;mileage&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;50 km&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;fuelConsumption&amp;quot;: [{&lt;br /&gt;
			&amp;quot;label&amp;quot;: &amp;quot;Kraftstoffverbr. komb.&amp;quot;,&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;7,9 l/100 km&amp;quot;,&lt;br /&gt;
			&amp;quot;link&amp;quot;: {}&lt;br /&gt;
		}, {&lt;br /&gt;
			&amp;quot;label&amp;quot;: &amp;quot;CO&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;-Emissionen komb.&amp;quot;,&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;188 g/km&amp;quot;,&lt;br /&gt;
			&amp;quot;link&amp;quot;: {}&lt;br /&gt;
		}],&lt;br /&gt;
		&amp;quot;usedCarSeal&amp;quot;: {&lt;br /&gt;
			&amp;quot;link&amp;quot;: {}&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;videoLinkPresent&amp;quot;: false,&lt;br /&gt;
		&amp;quot;newFlagged&amp;quot;: false,&lt;br /&gt;
		&amp;quot;advice&amp;quot;: {}&lt;br /&gt;
	}, {&lt;br /&gt;
		&amp;quot;image&amp;quot;: {&lt;br /&gt;
			&amp;quot;src&amp;quot;: &amp;quot;http://i.ebayimg.com/00/s/NzEyWDEwMjQ=/$T2eC16hHJHEE9ny2tll!BR(QZPtrwg~~48_18.JPG&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;fuelType&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;Benzin&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;power&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;120 kW (163 PS)&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;transmission&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;Schaltgetriebe&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;climatisation&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;Klimaanlage&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;adId&amp;quot;: 177004504,&lt;br /&gt;
		&amp;quot;priceModel&amp;quot;: {&lt;br /&gt;
			&amp;quot;type&amp;quot;: {},&lt;br /&gt;
			&amp;quot;secondaryPrice&amp;quot;: {&lt;br /&gt;
				&amp;quot;countryOfSale&amp;quot;: {&lt;br /&gt;
					&amp;quot;value&amp;quot;: &amp;quot;15.790 EUR (Netto)&amp;quot;&lt;br /&gt;
				},&lt;br /&gt;
				&amp;quot;countryOfOrigin&amp;quot;: {},&lt;br /&gt;
				&amp;quot;net&amp;quot;: true&lt;br /&gt;
			},&lt;br /&gt;
			&amp;quot;primaryPrice&amp;quot;: {&lt;br /&gt;
				&amp;quot;countryOfSale&amp;quot;: {&lt;br /&gt;
					&amp;quot;value&amp;quot;: &amp;quot;18.790 EUR (Brutto)&amp;quot;&lt;br /&gt;
				},&lt;br /&gt;
				&amp;quot;countryOfOrigin&amp;quot;: {},&lt;br /&gt;
				&amp;quot;net&amp;quot;: false&lt;br /&gt;
			},&lt;br /&gt;
			&amp;quot;previousPrice&amp;quot;: {},&lt;br /&gt;
			&amp;quot;deliveryCost&amp;quot;: {},&lt;br /&gt;
			&amp;quot;vatRate&amp;quot;: {&lt;br /&gt;
				&amp;quot;value&amp;quot;: &amp;quot;19,00% MwSt.&amp;quot;&lt;br /&gt;
			},&lt;br /&gt;
			&amp;quot;infoText&amp;quot;: {},&lt;br /&gt;
			&amp;quot;vatReclaimable&amp;quot;: true&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;makeModelDescription&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;Hyundai ix35 2.0 4WD Navi Klima ESP Tagfahrlicht 16Zoll&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;bodyType&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;Geländewagen/Pickup&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;usageType&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;Tageszulassung&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;firstRegistration&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;EZ 03/2013&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;mileage&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;50 km&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;fuelConsumption&amp;quot;: [{&lt;br /&gt;
			&amp;quot;label&amp;quot;: &amp;quot;Kraftstoffverbr. komb.&amp;quot;,&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;7,9 l/100 km&amp;quot;,&lt;br /&gt;
			&amp;quot;link&amp;quot;: {}&lt;br /&gt;
		}, {&lt;br /&gt;
			&amp;quot;label&amp;quot;: &amp;quot;CO&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;-Emissionen komb.&amp;quot;,&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;188 g/km&amp;quot;,&lt;br /&gt;
			&amp;quot;link&amp;quot;: {}&lt;br /&gt;
		}],&lt;br /&gt;
		&amp;quot;usedCarSeal&amp;quot;: {&lt;br /&gt;
			&amp;quot;link&amp;quot;: {}&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;videoLinkPresent&amp;quot;: false,&lt;br /&gt;
		&amp;quot;newFlagged&amp;quot;: false,&lt;br /&gt;
		&amp;quot;advice&amp;quot;: {}&lt;br /&gt;
	}, {&lt;br /&gt;
		&amp;quot;image&amp;quot;: {&lt;br /&gt;
			&amp;quot;src&amp;quot;: &amp;quot;http://i.ebayimg.com/00/s/NzY4WDEwMjQ=/$(KGrHqZ,!qYFEy1YLcwQBRiR3lF9T!~~48_18.JPG&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;fuelType&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;Benzin (E10-geeignet)&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;power&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;99 kW (135 PS)&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;transmission&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;Schaltgetriebe&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;climatisation&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;Klimaanlage&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;adId&amp;quot;: 177835458,&lt;br /&gt;
		&amp;quot;priceModel&amp;quot;: {&lt;br /&gt;
			&amp;quot;type&amp;quot;: {},&lt;br /&gt;
			&amp;quot;secondaryPrice&amp;quot;: {&lt;br /&gt;
				&amp;quot;countryOfSale&amp;quot;: {&lt;br /&gt;
					&amp;quot;value&amp;quot;: &amp;quot;17.639 EUR (Netto)&amp;quot;&lt;br /&gt;
				},&lt;br /&gt;
				&amp;quot;countryOfOrigin&amp;quot;: {},&lt;br /&gt;
				&amp;quot;net&amp;quot;: true&lt;br /&gt;
			},&lt;br /&gt;
			&amp;quot;primaryPrice&amp;quot;: {&lt;br /&gt;
				&amp;quot;countryOfSale&amp;quot;: {&lt;br /&gt;
					&amp;quot;value&amp;quot;: &amp;quot;20.990 EUR (Brutto)&amp;quot;&lt;br /&gt;
				},&lt;br /&gt;
				&amp;quot;countryOfOrigin&amp;quot;: {},&lt;br /&gt;
				&amp;quot;net&amp;quot;: false&lt;br /&gt;
			},&lt;br /&gt;
			&amp;quot;previousPrice&amp;quot;: {},&lt;br /&gt;
			&amp;quot;deliveryCost&amp;quot;: {},&lt;br /&gt;
			&amp;quot;vatRate&amp;quot;: {&lt;br /&gt;
				&amp;quot;value&amp;quot;: &amp;quot;19,00% MwSt.&amp;quot;&lt;br /&gt;
			},&lt;br /&gt;
			&amp;quot;infoText&amp;quot;: {},&lt;br /&gt;
			&amp;quot;vatReclaimable&amp;quot;: true&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;makeModelDescription&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;Kia Carens 1.6 Edition 7 Emotion Navi Klima PDC SHZ &amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;bodyType&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;Van/Kleinbus&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;usageType&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;Neufahrzeug&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;firstRegistration&amp;quot;: {},&lt;br /&gt;
		&amp;quot;mileage&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;50 km&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;fuelConsumption&amp;quot;: [{&lt;br /&gt;
			&amp;quot;label&amp;quot;: &amp;quot;Kraftstoffverbr. komb.&amp;quot;,&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;6,4 l/100 km&amp;quot;,&lt;br /&gt;
			&amp;quot;link&amp;quot;: {}&lt;br /&gt;
		}, {&lt;br /&gt;
			&amp;quot;label&amp;quot;: &amp;quot;CO&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;-Emissionen komb.&amp;quot;,&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;149 g/km&amp;quot;,&lt;br /&gt;
			&amp;quot;link&amp;quot;: {}&lt;br /&gt;
		}],&lt;br /&gt;
		&amp;quot;usedCarSeal&amp;quot;: {&lt;br /&gt;
			&amp;quot;link&amp;quot;: {}&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;videoLinkPresent&amp;quot;: false,&lt;br /&gt;
		&amp;quot;newFlagged&amp;quot;: false,&lt;br /&gt;
		&amp;quot;advice&amp;quot;: {}&lt;br /&gt;
	}, {&lt;br /&gt;
		&amp;quot;image&amp;quot;: {&lt;br /&gt;
			&amp;quot;src&amp;quot;: &amp;quot;http://i.ebayimg.com/00/s/NDgwWDY0MA==/$T2eC16FHJG!FFm1kJmRJBRiR86)iY!~~48_18.JPG&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;fuelType&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;Diesel&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;power&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;100 kW (136 PS)&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;transmission&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;Schaltgetriebe&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;climatisation&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;Klimaautomatik&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;adId&amp;quot;: 178242610,&lt;br /&gt;
		&amp;quot;priceModel&amp;quot;: {&lt;br /&gt;
			&amp;quot;type&amp;quot;: {},&lt;br /&gt;
			&amp;quot;secondaryPrice&amp;quot;: {&lt;br /&gt;
				&amp;quot;countryOfSale&amp;quot;: {&lt;br /&gt;
					&amp;quot;value&amp;quot;: &amp;quot;24.361 EUR (Netto)&amp;quot;&lt;br /&gt;
				},&lt;br /&gt;
				&amp;quot;countryOfOrigin&amp;quot;: {},&lt;br /&gt;
				&amp;quot;net&amp;quot;: true&lt;br /&gt;
			},&lt;br /&gt;
			&amp;quot;primaryPrice&amp;quot;: {&lt;br /&gt;
				&amp;quot;countryOfSale&amp;quot;: {&lt;br /&gt;
					&amp;quot;value&amp;quot;: &amp;quot;28.990 EUR (Brutto)&amp;quot;&lt;br /&gt;
				},&lt;br /&gt;
				&amp;quot;countryOfOrigin&amp;quot;: {},&lt;br /&gt;
				&amp;quot;net&amp;quot;: false&lt;br /&gt;
			},&lt;br /&gt;
			&amp;quot;previousPrice&amp;quot;: {},&lt;br /&gt;
			&amp;quot;deliveryCost&amp;quot;: {},&lt;br /&gt;
			&amp;quot;vatRate&amp;quot;: {&lt;br /&gt;
				&amp;quot;value&amp;quot;: &amp;quot;19,00% MwSt.&amp;quot;&lt;br /&gt;
			},&lt;br /&gt;
			&amp;quot;infoText&amp;quot;: {},&lt;br /&gt;
			&amp;quot;vatReclaimable&amp;quot;: true&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;makeModelDescription&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;Kia Carens 1.7 CRDi Spirit 7Sitze Navi PDC SHZ Leder&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;bodyType&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;Van/Kleinbus&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;usageType&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;Neufahrzeug&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;firstRegistration&amp;quot;: {},&lt;br /&gt;
		&amp;quot;mileage&amp;quot;: {},&lt;br /&gt;
		&amp;quot;fuelConsumption&amp;quot;: [{&lt;br /&gt;
			&amp;quot;label&amp;quot;: &amp;quot;Kraftstoffverbr. komb.&amp;quot;,&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;5,1 l/100 km&amp;quot;,&lt;br /&gt;
			&amp;quot;link&amp;quot;: {}&lt;br /&gt;
		}, {&lt;br /&gt;
			&amp;quot;label&amp;quot;: &amp;quot;CO&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;-Emissionen komb.&amp;quot;,&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;134 g/km&amp;quot;,&lt;br /&gt;
			&amp;quot;link&amp;quot;: {}&lt;br /&gt;
		}],&lt;br /&gt;
		&amp;quot;usedCarSeal&amp;quot;: {&lt;br /&gt;
			&amp;quot;link&amp;quot;: {}&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;videoLinkPresent&amp;quot;: false,&lt;br /&gt;
		&amp;quot;newFlagged&amp;quot;: false,&lt;br /&gt;
		&amp;quot;advice&amp;quot;: {}&lt;br /&gt;
	}, {&lt;br /&gt;
		&amp;quot;image&amp;quot;: {&lt;br /&gt;
			&amp;quot;src&amp;quot;: &amp;quot;http://i.ebayimg.com/00/$T2eC16R,!zQE9s3ssOOGBRTUm2,hKQ~~_18.JPG&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;fuelType&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;Benzin (E10-geeignet)&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;power&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;99 kW (135 PS)&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;transmission&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;Schaltgetriebe&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;climatisation&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;Klimaautomatik&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;adId&amp;quot;: 176596925,&lt;br /&gt;
		&amp;quot;priceModel&amp;quot;: {&lt;br /&gt;
			&amp;quot;type&amp;quot;: {},&lt;br /&gt;
			&amp;quot;secondaryPrice&amp;quot;: {&lt;br /&gt;
				&amp;quot;countryOfSale&amp;quot;: {&lt;br /&gt;
					&amp;quot;value&amp;quot;: &amp;quot;19.319 EUR (Netto)&amp;quot;&lt;br /&gt;
				},&lt;br /&gt;
				&amp;quot;countryOfOrigin&amp;quot;: {},&lt;br /&gt;
				&amp;quot;net&amp;quot;: true&lt;br /&gt;
			},&lt;br /&gt;
			&amp;quot;primaryPrice&amp;quot;: {&lt;br /&gt;
				&amp;quot;countryOfSale&amp;quot;: {&lt;br /&gt;
					&amp;quot;value&amp;quot;: &amp;quot;22.990 EUR (Brutto)&amp;quot;&lt;br /&gt;
				},&lt;br /&gt;
				&amp;quot;countryOfOrigin&amp;quot;: {},&lt;br /&gt;
				&amp;quot;net&amp;quot;: false&lt;br /&gt;
			},&lt;br /&gt;
			&amp;quot;previousPrice&amp;quot;: {},&lt;br /&gt;
			&amp;quot;deliveryCost&amp;quot;: {},&lt;br /&gt;
			&amp;quot;vatRate&amp;quot;: {&lt;br /&gt;
				&amp;quot;value&amp;quot;: &amp;quot;19,00% MwSt.&amp;quot;&lt;br /&gt;
			},&lt;br /&gt;
			&amp;quot;infoText&amp;quot;: {},&lt;br /&gt;
			&amp;quot;vatReclaimable&amp;quot;: true&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;makeModelDescription&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;Kia Cee&amp;#039;d SW 1.6 Spirit Navi Klimaaut. Xenon PDC&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;bodyType&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;Kombi&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;usageType&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;Tageszulassung&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;firstRegistration&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;EZ 01/2013&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;mileage&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;12 km&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;fuelConsumption&amp;quot;: [{&lt;br /&gt;
			&amp;quot;label&amp;quot;: &amp;quot;Kraftstoffverbr. komb.&amp;quot;,&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;6,1 l/100 km&amp;quot;,&lt;br /&gt;
			&amp;quot;link&amp;quot;: {}&lt;br /&gt;
		}, {&lt;br /&gt;
			&amp;quot;label&amp;quot;: &amp;quot;CO&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;-Emissionen komb.&amp;quot;,&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;134 g/km&amp;quot;,&lt;br /&gt;
			&amp;quot;link&amp;quot;: {}&lt;br /&gt;
		}],&lt;br /&gt;
		&amp;quot;usedCarSeal&amp;quot;: {&lt;br /&gt;
			&amp;quot;link&amp;quot;: {}&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;videoLinkPresent&amp;quot;: false,&lt;br /&gt;
		&amp;quot;newFlagged&amp;quot;: false,&lt;br /&gt;
		&amp;quot;advice&amp;quot;: {}&lt;br /&gt;
	}, {&lt;br /&gt;
		&amp;quot;image&amp;quot;: {&lt;br /&gt;
			&amp;quot;src&amp;quot;: &amp;quot;http://i.ebayimg.com/00/$T2eC16JHJIkE9qU3i)j+BRTUm06BIg~~_18.JPG&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;fuelType&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;Diesel&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;power&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;100 kW (136 PS)&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;transmission&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;Schaltgetriebe&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;climatisation&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;Klimaautomatik&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;adId&amp;quot;: 176596878,&lt;br /&gt;
		&amp;quot;priceModel&amp;quot;: {&lt;br /&gt;
			&amp;quot;type&amp;quot;: {},&lt;br /&gt;
			&amp;quot;secondaryPrice&amp;quot;: {&lt;br /&gt;
				&amp;quot;countryOfSale&amp;quot;: {&lt;br /&gt;
					&amp;quot;value&amp;quot;: &amp;quot;19.067 EUR (Netto)&amp;quot;&lt;br /&gt;
				},&lt;br /&gt;
				&amp;quot;countryOfOrigin&amp;quot;: {},&lt;br /&gt;
				&amp;quot;net&amp;quot;: true&lt;br /&gt;
			},&lt;br /&gt;
			&amp;quot;primaryPrice&amp;quot;: {&lt;br /&gt;
				&amp;quot;countryOfSale&amp;quot;: {&lt;br /&gt;
					&amp;quot;value&amp;quot;: &amp;quot;22.690 EUR (Brutto)&amp;quot;&lt;br /&gt;
				},&lt;br /&gt;
				&amp;quot;countryOfOrigin&amp;quot;: {},&lt;br /&gt;
				&amp;quot;net&amp;quot;: false&lt;br /&gt;
			},&lt;br /&gt;
			&amp;quot;previousPrice&amp;quot;: {},&lt;br /&gt;
			&amp;quot;deliveryCost&amp;quot;: {},&lt;br /&gt;
			&amp;quot;vatRate&amp;quot;: {&lt;br /&gt;
				&amp;quot;value&amp;quot;: &amp;quot;19,00% MwSt.&amp;quot;&lt;br /&gt;
			},&lt;br /&gt;
			&amp;quot;infoText&amp;quot;: {},&lt;br /&gt;
			&amp;quot;vatReclaimable&amp;quot;: true&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;makeModelDescription&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;Kia Optima 1.7 CRDI Spirit Premium Panorama Navi&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;bodyType&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;Limousine&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;usageType&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;Vorführfahrzeug&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;firstRegistration&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;EZ 04/2012&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;mileage&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;18.685 km&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;fuelConsumption&amp;quot;: [{&lt;br /&gt;
			&amp;quot;label&amp;quot;: &amp;quot;Kraftstoffverbr. komb.&amp;quot;,&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;4,9 l/100 km&amp;quot;,&lt;br /&gt;
			&amp;quot;link&amp;quot;: {}&lt;br /&gt;
		}, {&lt;br /&gt;
			&amp;quot;label&amp;quot;: &amp;quot;CO&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;-Emissionen komb.&amp;quot;,&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;128 g/km&amp;quot;,&lt;br /&gt;
			&amp;quot;link&amp;quot;: {}&lt;br /&gt;
		}],&lt;br /&gt;
		&amp;quot;usedCarSeal&amp;quot;: {&lt;br /&gt;
			&amp;quot;link&amp;quot;: {}&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;videoLinkPresent&amp;quot;: false,&lt;br /&gt;
		&amp;quot;newFlagged&amp;quot;: false,&lt;br /&gt;
		&amp;quot;advice&amp;quot;: {}&lt;br /&gt;
	}, {&lt;br /&gt;
		&amp;quot;image&amp;quot;: {&lt;br /&gt;
			&amp;quot;src&amp;quot;: &amp;quot;http://i.ebayimg.com/00/$T2eC16d,!ysE9sy0jLFoBRTUm1Fp6Q~~_18.JPG&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;fuelType&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;Benzin&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;power&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;51 kW (69 PS)&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;transmission&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;Schaltgetriebe&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;climatisation&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;Klimaanlage&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;adId&amp;quot;: 176596908,&lt;br /&gt;
		&amp;quot;priceModel&amp;quot;: {&lt;br /&gt;
			&amp;quot;type&amp;quot;: {},&lt;br /&gt;
			&amp;quot;secondaryPrice&amp;quot;: {&lt;br /&gt;
				&amp;quot;countryOfSale&amp;quot;: {&lt;br /&gt;
					&amp;quot;value&amp;quot;: &amp;quot;10.076 EUR (Netto)&amp;quot;&lt;br /&gt;
				},&lt;br /&gt;
				&amp;quot;countryOfOrigin&amp;quot;: {},&lt;br /&gt;
				&amp;quot;net&amp;quot;: true&lt;br /&gt;
			},&lt;br /&gt;
			&amp;quot;primaryPrice&amp;quot;: {&lt;br /&gt;
				&amp;quot;countryOfSale&amp;quot;: {&lt;br /&gt;
					&amp;quot;value&amp;quot;: &amp;quot;11.990 EUR (Brutto)&amp;quot;&lt;br /&gt;
				},&lt;br /&gt;
				&amp;quot;countryOfOrigin&amp;quot;: {},&lt;br /&gt;
				&amp;quot;net&amp;quot;: false&lt;br /&gt;
			},&lt;br /&gt;
			&amp;quot;previousPrice&amp;quot;: {},&lt;br /&gt;
			&amp;quot;deliveryCost&amp;quot;: {},&lt;br /&gt;
			&amp;quot;vatRate&amp;quot;: {&lt;br /&gt;
				&amp;quot;value&amp;quot;: &amp;quot;19,00% MwSt.&amp;quot;&lt;br /&gt;
			},&lt;br /&gt;
			&amp;quot;infoText&amp;quot;: {},&lt;br /&gt;
			&amp;quot;vatReclaimable&amp;quot;: true&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;makeModelDescription&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;Kia Picanto 1.0 Copa Brasil Navi Klima SHZ PDC&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;bodyType&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;Kleinwagen&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;usageType&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;Vorführfahrzeug&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;firstRegistration&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;EZ 11/2012&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;mileage&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;1.456 km&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;fuelConsumption&amp;quot;: [{&lt;br /&gt;
			&amp;quot;label&amp;quot;: &amp;quot;Kraftstoffverbr. komb.&amp;quot;,&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;4,4 l/100 km&amp;quot;,&lt;br /&gt;
			&amp;quot;link&amp;quot;: {}&lt;br /&gt;
		}, {&lt;br /&gt;
			&amp;quot;label&amp;quot;: &amp;quot;CO&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;-Emissionen komb.&amp;quot;,&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;103 g/km&amp;quot;,&lt;br /&gt;
			&amp;quot;link&amp;quot;: {}&lt;br /&gt;
		}],&lt;br /&gt;
		&amp;quot;usedCarSeal&amp;quot;: {&lt;br /&gt;
			&amp;quot;link&amp;quot;: {}&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;videoLinkPresent&amp;quot;: false,&lt;br /&gt;
		&amp;quot;newFlagged&amp;quot;: false,&lt;br /&gt;
		&amp;quot;advice&amp;quot;: {}&lt;br /&gt;
	}, {&lt;br /&gt;
		&amp;quot;image&amp;quot;: {&lt;br /&gt;
			&amp;quot;src&amp;quot;: &amp;quot;http://i.ebayimg.com/00/s/NzY4WDEwMjQ=/$T2eC16RHJGMFFpcQV,r(BR)sRQe71!~~48_18.JPG&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;fuelType&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;Benzin (E10-geeignet)&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;power&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;51 kW (69 PS)&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;transmission&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;Schaltgetriebe&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;climatisation&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;Klimaanlage&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;adId&amp;quot;: 180811722,&lt;br /&gt;
		&amp;quot;priceModel&amp;quot;: {&lt;br /&gt;
			&amp;quot;type&amp;quot;: {},&lt;br /&gt;
			&amp;quot;secondaryPrice&amp;quot;: {&lt;br /&gt;
				&amp;quot;countryOfSale&amp;quot;: {&lt;br /&gt;
					&amp;quot;value&amp;quot;: &amp;quot;9.235 EUR (Netto)&amp;quot;&lt;br /&gt;
				},&lt;br /&gt;
				&amp;quot;countryOfOrigin&amp;quot;: {},&lt;br /&gt;
				&amp;quot;net&amp;quot;: true&lt;br /&gt;
			},&lt;br /&gt;
			&amp;quot;primaryPrice&amp;quot;: {&lt;br /&gt;
				&amp;quot;countryOfSale&amp;quot;: {&lt;br /&gt;
					&amp;quot;value&amp;quot;: &amp;quot;10.990 EUR (Brutto)&amp;quot;&lt;br /&gt;
				},&lt;br /&gt;
				&amp;quot;countryOfOrigin&amp;quot;: {},&lt;br /&gt;
				&amp;quot;net&amp;quot;: false&lt;br /&gt;
			},&lt;br /&gt;
			&amp;quot;previousPrice&amp;quot;: {},&lt;br /&gt;
			&amp;quot;deliveryCost&amp;quot;: {},&lt;br /&gt;
			&amp;quot;vatRate&amp;quot;: {&lt;br /&gt;
				&amp;quot;value&amp;quot;: &amp;quot;19,00% MwSt.&amp;quot;&lt;br /&gt;
			},&lt;br /&gt;
			&amp;quot;infoText&amp;quot;: {},&lt;br /&gt;
			&amp;quot;vatReclaimable&amp;quot;: true&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;makeModelDescription&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;Kia Picanto 1.0 Dream-Team Navi SHZ Lenkradh. Klima&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;bodyType&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;Kleinwagen&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;usageType&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;Neufahrzeug&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;firstRegistration&amp;quot;: {},&lt;br /&gt;
		&amp;quot;mileage&amp;quot;: {},&lt;br /&gt;
		&amp;quot;fuelConsumption&amp;quot;: [{&lt;br /&gt;
			&amp;quot;label&amp;quot;: &amp;quot;Kraftstoffverbr. komb.&amp;quot;,&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;4,4 l/100 km&amp;quot;,&lt;br /&gt;
			&amp;quot;link&amp;quot;: {}&lt;br /&gt;
		}, {&lt;br /&gt;
			&amp;quot;label&amp;quot;: &amp;quot;CO&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;-Emissionen komb.&amp;quot;,&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;103 g/km&amp;quot;,&lt;br /&gt;
			&amp;quot;link&amp;quot;: {}&lt;br /&gt;
		}],&lt;br /&gt;
		&amp;quot;usedCarSeal&amp;quot;: {&lt;br /&gt;
			&amp;quot;link&amp;quot;: {}&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;videoLinkPresent&amp;quot;: false,&lt;br /&gt;
		&amp;quot;newFlagged&amp;quot;: false,&lt;br /&gt;
		&amp;quot;advice&amp;quot;: {}&lt;br /&gt;
	}, {&lt;br /&gt;
		&amp;quot;image&amp;quot;: {&lt;br /&gt;
			&amp;quot;src&amp;quot;: &amp;quot;http://i.ebayimg.com/00/$T2eC16h,!y8E9s2fl8CvBRTUm2giww~~_18.JPG&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;fuelType&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;Benzin (E10-geeignet)&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;power&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;51 kW (69 PS)&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;transmission&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;Schaltgetriebe&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;climatisation&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;Klimaanlage&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;adId&amp;quot;: 176596950,&lt;br /&gt;
		&amp;quot;priceModel&amp;quot;: {&lt;br /&gt;
			&amp;quot;type&amp;quot;: {},&lt;br /&gt;
			&amp;quot;secondaryPrice&amp;quot;: {&lt;br /&gt;
				&amp;quot;countryOfSale&amp;quot;: {&lt;br /&gt;
					&amp;quot;value&amp;quot;: &amp;quot;9.151 EUR (Netto)&amp;quot;&lt;br /&gt;
				},&lt;br /&gt;
				&amp;quot;countryOfOrigin&amp;quot;: {},&lt;br /&gt;
				&amp;quot;net&amp;quot;: true&lt;br /&gt;
			},&lt;br /&gt;
			&amp;quot;primaryPrice&amp;quot;: {&lt;br /&gt;
				&amp;quot;countryOfSale&amp;quot;: {&lt;br /&gt;
					&amp;quot;value&amp;quot;: &amp;quot;10.890 EUR (Brutto)&amp;quot;&lt;br /&gt;
				},&lt;br /&gt;
				&amp;quot;countryOfOrigin&amp;quot;: {},&lt;br /&gt;
				&amp;quot;net&amp;quot;: false&lt;br /&gt;
			},&lt;br /&gt;
			&amp;quot;previousPrice&amp;quot;: {},&lt;br /&gt;
			&amp;quot;deliveryCost&amp;quot;: {},&lt;br /&gt;
			&amp;quot;vatRate&amp;quot;: {&lt;br /&gt;
				&amp;quot;value&amp;quot;: &amp;quot;19,00% MwSt.&amp;quot;&lt;br /&gt;
			},&lt;br /&gt;
			&amp;quot;infoText&amp;quot;: {},&lt;br /&gt;
			&amp;quot;vatReclaimable&amp;quot;: true&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;makeModelDescription&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;Kia Picanto 1.0 Edition 7 Navi Klima  MP3&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;bodyType&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;Kleinwagen&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;usageType&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;Neufahrzeug&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;firstRegistration&amp;quot;: {},&lt;br /&gt;
		&amp;quot;mileage&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;9 km&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;fuelConsumption&amp;quot;: [{&lt;br /&gt;
			&amp;quot;label&amp;quot;: &amp;quot;Kraftstoffverbr. komb.&amp;quot;,&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;4,4 l/100 km&amp;quot;,&lt;br /&gt;
			&amp;quot;link&amp;quot;: {}&lt;br /&gt;
		}, {&lt;br /&gt;
			&amp;quot;label&amp;quot;: &amp;quot;CO&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;-Emissionen komb.&amp;quot;,&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;103 g/km&amp;quot;,&lt;br /&gt;
			&amp;quot;link&amp;quot;: {}&lt;br /&gt;
		}],&lt;br /&gt;
		&amp;quot;usedCarSeal&amp;quot;: {&lt;br /&gt;
			&amp;quot;link&amp;quot;: {}&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;videoLinkPresent&amp;quot;: false,&lt;br /&gt;
		&amp;quot;newFlagged&amp;quot;: false,&lt;br /&gt;
		&amp;quot;advice&amp;quot;: {}&lt;br /&gt;
	}, {&lt;br /&gt;
		&amp;quot;image&amp;quot;: {&lt;br /&gt;
			&amp;quot;src&amp;quot;: &amp;quot;http://i.ebayimg.com/00/$T2eC16NHJHgE9n0yEiwMBRTUm2lVrg~~_18.JPG&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;fuelType&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;Benzin&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;power&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;51 kW (69 PS)&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;transmission&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;Schaltgetriebe&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;climatisation&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;Klimaanlage&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;adId&amp;quot;: 176596954,&lt;br /&gt;
		&amp;quot;priceModel&amp;quot;: {&lt;br /&gt;
			&amp;quot;type&amp;quot;: {},&lt;br /&gt;
			&amp;quot;secondaryPrice&amp;quot;: {&lt;br /&gt;
				&amp;quot;countryOfSale&amp;quot;: {&lt;br /&gt;
					&amp;quot;value&amp;quot;: &amp;quot;9.235 EUR (Netto)&amp;quot;&lt;br /&gt;
				},&lt;br /&gt;
				&amp;quot;countryOfOrigin&amp;quot;: {},&lt;br /&gt;
				&amp;quot;net&amp;quot;: true&lt;br /&gt;
			},&lt;br /&gt;
			&amp;quot;primaryPrice&amp;quot;: {&lt;br /&gt;
				&amp;quot;countryOfSale&amp;quot;: {&lt;br /&gt;
					&amp;quot;value&amp;quot;: &amp;quot;10.990 EUR (Brutto)&amp;quot;&lt;br /&gt;
				},&lt;br /&gt;
				&amp;quot;countryOfOrigin&amp;quot;: {},&lt;br /&gt;
				&amp;quot;net&amp;quot;: false&lt;br /&gt;
			},&lt;br /&gt;
			&amp;quot;previousPrice&amp;quot;: {},&lt;br /&gt;
			&amp;quot;deliveryCost&amp;quot;: {},&lt;br /&gt;
			&amp;quot;vatRate&amp;quot;: {&lt;br /&gt;
				&amp;quot;value&amp;quot;: &amp;quot;19,00% MwSt.&amp;quot;&lt;br /&gt;
			},&lt;br /&gt;
			&amp;quot;infoText&amp;quot;: {},&lt;br /&gt;
			&amp;quot;vatReclaimable&amp;quot;: true&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;makeModelDescription&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;Kia Picanto 1.0 Edition 7 Navi Klima  MP3&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;bodyType&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;Kleinwagen&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;usageType&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;Tageszulassung&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;firstRegistration&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;EZ 03/2013&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;mileage&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;9 km&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;fuelConsumption&amp;quot;: [{&lt;br /&gt;
			&amp;quot;label&amp;quot;: &amp;quot;Kraftstoffverbr. komb.&amp;quot;,&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;4,4 l/100 km&amp;quot;,&lt;br /&gt;
			&amp;quot;link&amp;quot;: {}&lt;br /&gt;
		}, {&lt;br /&gt;
			&amp;quot;label&amp;quot;: &amp;quot;CO&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;-Emissionen komb.&amp;quot;,&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;103 g/km&amp;quot;,&lt;br /&gt;
			&amp;quot;link&amp;quot;: {}&lt;br /&gt;
		}],&lt;br /&gt;
		&amp;quot;usedCarSeal&amp;quot;: {&lt;br /&gt;
			&amp;quot;link&amp;quot;: {}&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;videoLinkPresent&amp;quot;: false,&lt;br /&gt;
		&amp;quot;newFlagged&amp;quot;: false,&lt;br /&gt;
		&amp;quot;advice&amp;quot;: {}&lt;br /&gt;
	}, {&lt;br /&gt;
		&amp;quot;image&amp;quot;: {&lt;br /&gt;
			&amp;quot;src&amp;quot;: &amp;quot;http://i.ebayimg.com/00/s/NzY4WDEwMjQ=/$T2eC16hHJH8E9qSEYOcrBRVVE0,LUg~~48_18.JPG&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;fuelType&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;Benzin&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;power&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;48 kW (65 PS)&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;transmission&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;Schaltgetriebe&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;climatisation&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;Klimaanlage&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;adId&amp;quot;: 176785454,&lt;br /&gt;
		&amp;quot;priceModel&amp;quot;: {&lt;br /&gt;
			&amp;quot;type&amp;quot;: {},&lt;br /&gt;
			&amp;quot;secondaryPrice&amp;quot;: {&lt;br /&gt;
				&amp;quot;countryOfSale&amp;quot;: {},&lt;br /&gt;
				&amp;quot;countryOfOrigin&amp;quot;: {},&lt;br /&gt;
				&amp;quot;net&amp;quot;: true&lt;br /&gt;
			},&lt;br /&gt;
			&amp;quot;primaryPrice&amp;quot;: {&lt;br /&gt;
				&amp;quot;countryOfSale&amp;quot;: {&lt;br /&gt;
					&amp;quot;value&amp;quot;: &amp;quot;4.790 EUR&amp;quot;&lt;br /&gt;
				},&lt;br /&gt;
				&amp;quot;countryOfOrigin&amp;quot;: {},&lt;br /&gt;
				&amp;quot;net&amp;quot;: false&lt;br /&gt;
			},&lt;br /&gt;
			&amp;quot;previousPrice&amp;quot;: {},&lt;br /&gt;
			&amp;quot;deliveryCost&amp;quot;: {},&lt;br /&gt;
			&amp;quot;vatRate&amp;quot;: {&lt;br /&gt;
				&amp;quot;value&amp;quot;: &amp;quot;MwSt. nicht ausweisbar&amp;quot;&lt;br /&gt;
			},&lt;br /&gt;
			&amp;quot;infoText&amp;quot;: {},&lt;br /&gt;
			&amp;quot;vatReclaimable&amp;quot;: false&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;makeModelDescription&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;Kia Picanto 1.1 EX Navi Klima Alu Rentner&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;bodyType&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;Kleinwagen&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;usageType&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;Gebrauchtfahrzeug&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;firstRegistration&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;EZ 10/2004&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;mileage&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;75.705 km&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;fuelConsumption&amp;quot;: [{&lt;br /&gt;
			&amp;quot;label&amp;quot;: &amp;quot;Kraftstoffverbr. komb.&amp;quot;,&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;ca. 5,2 l/100 km&amp;quot;,&lt;br /&gt;
			&amp;quot;link&amp;quot;: {}&lt;br /&gt;
		}, {&lt;br /&gt;
			&amp;quot;label&amp;quot;: &amp;quot;CO&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;-Emissionen komb.&amp;quot;,&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;ca. 125 g/km&amp;quot;,&lt;br /&gt;
			&amp;quot;link&amp;quot;: {}&lt;br /&gt;
		}],&lt;br /&gt;
		&amp;quot;usedCarSeal&amp;quot;: {&lt;br /&gt;
			&amp;quot;link&amp;quot;: {}&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;videoLinkPresent&amp;quot;: false,&lt;br /&gt;
		&amp;quot;newFlagged&amp;quot;: false,&lt;br /&gt;
		&amp;quot;advice&amp;quot;: {}&lt;br /&gt;
	}, {&lt;br /&gt;
		&amp;quot;image&amp;quot;: {&lt;br /&gt;
			&amp;quot;src&amp;quot;: &amp;quot;http://i.ebayimg.com/00/s/NzY4WDEwMjQ=/$T2eC16dHJI!E9qSO9wj!BRojoPiFog~~48_18.JPG&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;fuelType&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;Benzin (E10-geeignet)&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;power&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;63 kW (86 PS)&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;transmission&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;Schaltgetriebe&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;climatisation&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;Klimaanlage&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;adId&amp;quot;: 179483024,&lt;br /&gt;
		&amp;quot;priceModel&amp;quot;: {&lt;br /&gt;
			&amp;quot;type&amp;quot;: {},&lt;br /&gt;
			&amp;quot;secondaryPrice&amp;quot;: {&lt;br /&gt;
				&amp;quot;countryOfSale&amp;quot;: {&lt;br /&gt;
					&amp;quot;value&amp;quot;: &amp;quot;9.992 EUR (Netto)&amp;quot;&lt;br /&gt;
				},&lt;br /&gt;
				&amp;quot;countryOfOrigin&amp;quot;: {},&lt;br /&gt;
				&amp;quot;net&amp;quot;: true&lt;br /&gt;
			},&lt;br /&gt;
			&amp;quot;primaryPrice&amp;quot;: {&lt;br /&gt;
				&amp;quot;countryOfSale&amp;quot;: {&lt;br /&gt;
					&amp;quot;value&amp;quot;: &amp;quot;11.890 EUR (Brutto)&amp;quot;&lt;br /&gt;
				},&lt;br /&gt;
				&amp;quot;countryOfOrigin&amp;quot;: {},&lt;br /&gt;
				&amp;quot;net&amp;quot;: false&lt;br /&gt;
			},&lt;br /&gt;
			&amp;quot;previousPrice&amp;quot;: {},&lt;br /&gt;
			&amp;quot;deliveryCost&amp;quot;: {},&lt;br /&gt;
			&amp;quot;vatRate&amp;quot;: {&lt;br /&gt;
				&amp;quot;value&amp;quot;: &amp;quot;19,00% MwSt.&amp;quot;&lt;br /&gt;
			},&lt;br /&gt;
			&amp;quot;infoText&amp;quot;: {},&lt;br /&gt;
			&amp;quot;vatReclaimable&amp;quot;: true&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;makeModelDescription&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;Kia Picanto 1.2 Dream-Team 7Jahre Versprechen Navi&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;bodyType&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;Kleinwagen&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;usageType&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;Neufahrzeug&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;firstRegistration&amp;quot;: {},&lt;br /&gt;
		&amp;quot;mileage&amp;quot;: {},&lt;br /&gt;
		&amp;quot;fuelConsumption&amp;quot;: [{&lt;br /&gt;
			&amp;quot;label&amp;quot;: &amp;quot;Kraftstoffverbr. komb.&amp;quot;,&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;4,7 l/100 km&amp;quot;,&lt;br /&gt;
			&amp;quot;link&amp;quot;: {}&lt;br /&gt;
		}, {&lt;br /&gt;
			&amp;quot;label&amp;quot;: &amp;quot;CO&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;-Emissionen komb.&amp;quot;,&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;109 g/km&amp;quot;,&lt;br /&gt;
			&amp;quot;link&amp;quot;: {}&lt;br /&gt;
		}],&lt;br /&gt;
		&amp;quot;usedCarSeal&amp;quot;: {&lt;br /&gt;
			&amp;quot;link&amp;quot;: {}&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;videoLinkPresent&amp;quot;: false,&lt;br /&gt;
		&amp;quot;newFlagged&amp;quot;: false,&lt;br /&gt;
		&amp;quot;advice&amp;quot;: {}&lt;br /&gt;
	}, {&lt;br /&gt;
		&amp;quot;image&amp;quot;: {&lt;br /&gt;
			&amp;quot;src&amp;quot;: &amp;quot;http://i.ebayimg.com/00/s/NDgwWDY0MA==/$T2eC16F,!yEE9s5jD(PLBRiSLqLbFg~~48_18.JPG&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;fuelType&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;Benzin (E10-geeignet)&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;power&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;51 kW (69 PS)&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;transmission&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;Schaltgetriebe&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;climatisation&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;Klimaanlage&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;adId&amp;quot;: 177467007,&lt;br /&gt;
		&amp;quot;priceModel&amp;quot;: {&lt;br /&gt;
			&amp;quot;type&amp;quot;: {},&lt;br /&gt;
			&amp;quot;secondaryPrice&amp;quot;: {&lt;br /&gt;
				&amp;quot;countryOfSale&amp;quot;: {&lt;br /&gt;
					&amp;quot;value&amp;quot;: &amp;quot;8.395 EUR (Netto)&amp;quot;&lt;br /&gt;
				},&lt;br /&gt;
				&amp;quot;countryOfOrigin&amp;quot;: {},&lt;br /&gt;
				&amp;quot;net&amp;quot;: true&lt;br /&gt;
			},&lt;br /&gt;
			&amp;quot;primaryPrice&amp;quot;: {&lt;br /&gt;
				&amp;quot;countryOfSale&amp;quot;: {&lt;br /&gt;
					&amp;quot;value&amp;quot;: &amp;quot;9.990 EUR (Brutto)&amp;quot;&lt;br /&gt;
				},&lt;br /&gt;
				&amp;quot;countryOfOrigin&amp;quot;: {},&lt;br /&gt;
				&amp;quot;net&amp;quot;: false&lt;br /&gt;
			},&lt;br /&gt;
			&amp;quot;previousPrice&amp;quot;: {},&lt;br /&gt;
			&amp;quot;deliveryCost&amp;quot;: {},&lt;br /&gt;
			&amp;quot;vatRate&amp;quot;: {&lt;br /&gt;
				&amp;quot;value&amp;quot;: &amp;quot;19,00% MwSt.&amp;quot;&lt;br /&gt;
			},&lt;br /&gt;
			&amp;quot;infoText&amp;quot;: {},&lt;br /&gt;
			&amp;quot;vatReclaimable&amp;quot;: true&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;makeModelDescription&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;Kia Picanto Business Line Navigation Klimaanlage&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;bodyType&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;Kleinwagen&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;usageType&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;Neufahrzeug&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;firstRegistration&amp;quot;: {},&lt;br /&gt;
		&amp;quot;mileage&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;19 km&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;fuelConsumption&amp;quot;: [{&lt;br /&gt;
			&amp;quot;label&amp;quot;: &amp;quot;Kraftstoffverbr. komb.&amp;quot;,&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;4,4 l/100 km&amp;quot;,&lt;br /&gt;
			&amp;quot;link&amp;quot;: {}&lt;br /&gt;
		}, {&lt;br /&gt;
			&amp;quot;label&amp;quot;: &amp;quot;CO&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;-Emissionen komb.&amp;quot;,&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;103 g/km&amp;quot;,&lt;br /&gt;
			&amp;quot;link&amp;quot;: {}&lt;br /&gt;
		}],&lt;br /&gt;
		&amp;quot;usedCarSeal&amp;quot;: {&lt;br /&gt;
			&amp;quot;link&amp;quot;: {}&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;videoLinkPresent&amp;quot;: false,&lt;br /&gt;
		&amp;quot;newFlagged&amp;quot;: false,&lt;br /&gt;
		&amp;quot;advice&amp;quot;: {}&lt;br /&gt;
	}, {&lt;br /&gt;
		&amp;quot;image&amp;quot;: {&lt;br /&gt;
			&amp;quot;src&amp;quot;: &amp;quot;http://i.ebayimg.com/00/s/NDgwWDY0MA==/$(KGrHqN,!rUFEt99Go5jBRiR6jqUDQ~~48_18.JPG&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;fuelType&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;Benzin (E10-geeignet)&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;power&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;80 kW (109 PS)&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;transmission&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;Schaltgetriebe&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;climatisation&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;Klimaautomatik&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;adId&amp;quot;: 177181591,&lt;br /&gt;
		&amp;quot;priceModel&amp;quot;: {&lt;br /&gt;
			&amp;quot;type&amp;quot;: {},&lt;br /&gt;
			&amp;quot;secondaryPrice&amp;quot;: {&lt;br /&gt;
				&amp;quot;countryOfSale&amp;quot;: {&lt;br /&gt;
					&amp;quot;value&amp;quot;: &amp;quot;14.273 EUR (Netto)&amp;quot;&lt;br /&gt;
				},&lt;br /&gt;
				&amp;quot;countryOfOrigin&amp;quot;: {},&lt;br /&gt;
				&amp;quot;net&amp;quot;: true&lt;br /&gt;
			},&lt;br /&gt;
			&amp;quot;primaryPrice&amp;quot;: {&lt;br /&gt;
				&amp;quot;countryOfSale&amp;quot;: {&lt;br /&gt;
					&amp;quot;value&amp;quot;: &amp;quot;16.985 EUR (Brutto)&amp;quot;&lt;br /&gt;
				},&lt;br /&gt;
				&amp;quot;countryOfOrigin&amp;quot;: {},&lt;br /&gt;
				&amp;quot;net&amp;quot;: false&lt;br /&gt;
			},&lt;br /&gt;
			&amp;quot;previousPrice&amp;quot;: {},&lt;br /&gt;
			&amp;quot;deliveryCost&amp;quot;: {},&lt;br /&gt;
			&amp;quot;vatRate&amp;quot;: {&lt;br /&gt;
				&amp;quot;value&amp;quot;: &amp;quot;19,00% MwSt.&amp;quot;&lt;br /&gt;
			},&lt;br /&gt;
			&amp;quot;infoText&amp;quot;: {},&lt;br /&gt;
			&amp;quot;vatReclaimable&amp;quot;: true&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;makeModelDescription&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;Kia Rio 1.4 Dream-Team Edition Navi SHZ Klima PDC&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;bodyType&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;Kleinwagen&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;usageType&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;Neufahrzeug&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;firstRegistration&amp;quot;: {},&lt;br /&gt;
		&amp;quot;mileage&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;19 km&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;fuelConsumption&amp;quot;: [{&lt;br /&gt;
			&amp;quot;label&amp;quot;: &amp;quot;Kraftstoffverbr. komb.&amp;quot;,&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;5,5 l/100 km&amp;quot;,&lt;br /&gt;
			&amp;quot;link&amp;quot;: {}&lt;br /&gt;
		}, {&lt;br /&gt;
			&amp;quot;label&amp;quot;: &amp;quot;CO&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;-Emissionen komb.&amp;quot;,&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;128 g/km&amp;quot;,&lt;br /&gt;
			&amp;quot;link&amp;quot;: {}&lt;br /&gt;
		}],&lt;br /&gt;
		&amp;quot;usedCarSeal&amp;quot;: {&lt;br /&gt;
			&amp;quot;link&amp;quot;: {}&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;videoLinkPresent&amp;quot;: false,&lt;br /&gt;
		&amp;quot;newFlagged&amp;quot;: false,&lt;br /&gt;
		&amp;quot;advice&amp;quot;: {}&lt;br /&gt;
	}, {&lt;br /&gt;
		&amp;quot;image&amp;quot;: {&lt;br /&gt;
			&amp;quot;src&amp;quot;: &amp;quot;http://i.ebayimg.com/00/$T2eC16h,!zQE9s3suFrkBRTUm1Hp2w~~_18.JPG&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;fuelType&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;Benzin&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;power&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;80 kW (109 PS)&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;transmission&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;Schaltgetriebe&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;climatisation&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;Klimaanlage&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;adId&amp;quot;: 176596895,&lt;br /&gt;
		&amp;quot;priceModel&amp;quot;: {&lt;br /&gt;
			&amp;quot;type&amp;quot;: {},&lt;br /&gt;
			&amp;quot;secondaryPrice&amp;quot;: {&lt;br /&gt;
				&amp;quot;countryOfSale&amp;quot;: {&lt;br /&gt;
					&amp;quot;value&amp;quot;: &amp;quot;11.756 EUR (Netto)&amp;quot;&lt;br /&gt;
				},&lt;br /&gt;
				&amp;quot;countryOfOrigin&amp;quot;: {},&lt;br /&gt;
				&amp;quot;net&amp;quot;: true&lt;br /&gt;
			},&lt;br /&gt;
			&amp;quot;primaryPrice&amp;quot;: {&lt;br /&gt;
				&amp;quot;countryOfSale&amp;quot;: {&lt;br /&gt;
					&amp;quot;value&amp;quot;: &amp;quot;13.990 EUR (Brutto)&amp;quot;&lt;br /&gt;
				},&lt;br /&gt;
				&amp;quot;countryOfOrigin&amp;quot;: {},&lt;br /&gt;
				&amp;quot;net&amp;quot;: false&lt;br /&gt;
			},&lt;br /&gt;
			&amp;quot;previousPrice&amp;quot;: {},&lt;br /&gt;
			&amp;quot;deliveryCost&amp;quot;: {},&lt;br /&gt;
			&amp;quot;vatRate&amp;quot;: {&lt;br /&gt;
				&amp;quot;value&amp;quot;: &amp;quot;19,00% MwSt.&amp;quot;&lt;br /&gt;
			},&lt;br /&gt;
			&amp;quot;infoText&amp;quot;: {},&lt;br /&gt;
			&amp;quot;vatReclaimable&amp;quot;: true&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;makeModelDescription&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;Kia Rio 1.4 Edition 7 Navi Klima Alu Tagfahrlicht&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;bodyType&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;Kleinwagen&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;usageType&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;Tageszulassung&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;firstRegistration&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;EZ 12/2012&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;mileage&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;19 km&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;fuelConsumption&amp;quot;: [{&lt;br /&gt;
			&amp;quot;label&amp;quot;: &amp;quot;Kraftstoffverbr. komb.&amp;quot;,&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;5,5 l/100 km&amp;quot;,&lt;br /&gt;
			&amp;quot;link&amp;quot;: {}&lt;br /&gt;
		}, {&lt;br /&gt;
			&amp;quot;label&amp;quot;: &amp;quot;CO&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;-Emissionen komb.&amp;quot;,&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;128 g/km&amp;quot;,&lt;br /&gt;
			&amp;quot;link&amp;quot;: {}&lt;br /&gt;
		}],&lt;br /&gt;
		&amp;quot;usedCarSeal&amp;quot;: {&lt;br /&gt;
			&amp;quot;link&amp;quot;: {}&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;videoLinkPresent&amp;quot;: false,&lt;br /&gt;
		&amp;quot;newFlagged&amp;quot;: false,&lt;br /&gt;
		&amp;quot;advice&amp;quot;: {}&lt;br /&gt;
	}, {&lt;br /&gt;
		&amp;quot;image&amp;quot;: {&lt;br /&gt;
			&amp;quot;src&amp;quot;: &amp;quot;http://i.ebayimg.com/00/$T2eC16JHJGwE9n)ySeJDBRTUm0yqv!~~_18.JPG&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;fuelType&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;Benzin&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;power&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;80 kW (109 PS)&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;transmission&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;Schaltgetriebe&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;climatisation&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;Klimaanlage&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;adId&amp;quot;: 176596896,&lt;br /&gt;
		&amp;quot;priceModel&amp;quot;: {&lt;br /&gt;
			&amp;quot;type&amp;quot;: {},&lt;br /&gt;
			&amp;quot;secondaryPrice&amp;quot;: {&lt;br /&gt;
				&amp;quot;countryOfSale&amp;quot;: {&lt;br /&gt;
					&amp;quot;value&amp;quot;: &amp;quot;11.756 EUR (Netto)&amp;quot;&lt;br /&gt;
				},&lt;br /&gt;
				&amp;quot;countryOfOrigin&amp;quot;: {},&lt;br /&gt;
				&amp;quot;net&amp;quot;: true&lt;br /&gt;
			},&lt;br /&gt;
			&amp;quot;primaryPrice&amp;quot;: {&lt;br /&gt;
				&amp;quot;countryOfSale&amp;quot;: {&lt;br /&gt;
					&amp;quot;value&amp;quot;: &amp;quot;13.990 EUR (Brutto)&amp;quot;&lt;br /&gt;
				},&lt;br /&gt;
				&amp;quot;countryOfOrigin&amp;quot;: {},&lt;br /&gt;
				&amp;quot;net&amp;quot;: false&lt;br /&gt;
			},&lt;br /&gt;
			&amp;quot;previousPrice&amp;quot;: {},&lt;br /&gt;
			&amp;quot;deliveryCost&amp;quot;: {},&lt;br /&gt;
			&amp;quot;vatRate&amp;quot;: {&lt;br /&gt;
				&amp;quot;value&amp;quot;: &amp;quot;19,00% MwSt.&amp;quot;&lt;br /&gt;
			},&lt;br /&gt;
			&amp;quot;infoText&amp;quot;: {},&lt;br /&gt;
			&amp;quot;vatReclaimable&amp;quot;: true&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;makeModelDescription&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;Kia Rio 1.4 Edition 7 Navi Klima Alu Tagfahrlicht&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;bodyType&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;Kleinwagen&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;usageType&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;Tageszulassung&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;firstRegistration&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;EZ 12/2012&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;mileage&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;19 km&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;fuelConsumption&amp;quot;: [{&lt;br /&gt;
			&amp;quot;label&amp;quot;: &amp;quot;Kraftstoffverbr. komb.&amp;quot;,&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;5,5 l/100 km&amp;quot;,&lt;br /&gt;
			&amp;quot;link&amp;quot;: {}&lt;br /&gt;
		}, {&lt;br /&gt;
			&amp;quot;label&amp;quot;: &amp;quot;CO&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;-Emissionen komb.&amp;quot;,&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;128 g/km&amp;quot;,&lt;br /&gt;
			&amp;quot;link&amp;quot;: {}&lt;br /&gt;
		}],&lt;br /&gt;
		&amp;quot;usedCarSeal&amp;quot;: {&lt;br /&gt;
			&amp;quot;link&amp;quot;: {}&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;videoLinkPresent&amp;quot;: false,&lt;br /&gt;
		&amp;quot;newFlagged&amp;quot;: false,&lt;br /&gt;
		&amp;quot;advice&amp;quot;: {}&lt;br /&gt;
	}, {&lt;br /&gt;
		&amp;quot;image&amp;quot;: {&lt;br /&gt;
			&amp;quot;src&amp;quot;: &amp;quot;http://i.ebayimg.com/00/s/NzY4WDEwMjQ=/$T2eC16hHJH8E9qSEYOjoBRVYqmkG1!~~48_18.JPG&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;fuelType&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;Benzin&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;power&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;80 kW (109 PS)&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;transmission&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;Schaltgetriebe&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;climatisation&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;Klimaautomatik&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;adId&amp;quot;: 176795153,&lt;br /&gt;
		&amp;quot;priceModel&amp;quot;: {&lt;br /&gt;
			&amp;quot;type&amp;quot;: {},&lt;br /&gt;
			&amp;quot;secondaryPrice&amp;quot;: {&lt;br /&gt;
				&amp;quot;countryOfSale&amp;quot;: {&lt;br /&gt;
					&amp;quot;value&amp;quot;: &amp;quot;14.445 EUR (Netto)&amp;quot;&lt;br /&gt;
				},&lt;br /&gt;
				&amp;quot;countryOfOrigin&amp;quot;: {},&lt;br /&gt;
				&amp;quot;net&amp;quot;: true&lt;br /&gt;
			},&lt;br /&gt;
			&amp;quot;primaryPrice&amp;quot;: {&lt;br /&gt;
				&amp;quot;countryOfSale&amp;quot;: {&lt;br /&gt;
					&amp;quot;value&amp;quot;: &amp;quot;17.190 EUR (Brutto)&amp;quot;&lt;br /&gt;
				},&lt;br /&gt;
				&amp;quot;countryOfOrigin&amp;quot;: {},&lt;br /&gt;
				&amp;quot;net&amp;quot;: false&lt;br /&gt;
			},&lt;br /&gt;
			&amp;quot;previousPrice&amp;quot;: {},&lt;br /&gt;
			&amp;quot;deliveryCost&amp;quot;: {},&lt;br /&gt;
			&amp;quot;vatRate&amp;quot;: {&lt;br /&gt;
				&amp;quot;value&amp;quot;: &amp;quot;19,00% MwSt.&amp;quot;&lt;br /&gt;
			},&lt;br /&gt;
			&amp;quot;infoText&amp;quot;: {},&lt;br /&gt;
			&amp;quot;vatReclaimable&amp;quot;: true&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;makeModelDescription&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;Kia Rio 1.4 Spirit Klima PDC SHZ Navi Soundsystem&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;bodyType&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;Kleinwagen&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;usageType&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;Vorführfahrzeug&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;firstRegistration&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;EZ 03/2013&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;mileage&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;425 km&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;fuelConsumption&amp;quot;: [{&lt;br /&gt;
			&amp;quot;label&amp;quot;: &amp;quot;Kraftstoffverbr. komb.&amp;quot;,&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;5,3 l/100 km&amp;quot;,&lt;br /&gt;
			&amp;quot;link&amp;quot;: {}&lt;br /&gt;
		}, {&lt;br /&gt;
			&amp;quot;label&amp;quot;: &amp;quot;CO&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;-Emissionen komb.&amp;quot;,&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;124 g/km&amp;quot;,&lt;br /&gt;
			&amp;quot;link&amp;quot;: {}&lt;br /&gt;
		}],&lt;br /&gt;
		&amp;quot;usedCarSeal&amp;quot;: {&lt;br /&gt;
			&amp;quot;link&amp;quot;: {}&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;videoLinkPresent&amp;quot;: false,&lt;br /&gt;
		&amp;quot;newFlagged&amp;quot;: false,&lt;br /&gt;
		&amp;quot;advice&amp;quot;: {}&lt;br /&gt;
	}, {&lt;br /&gt;
		&amp;quot;image&amp;quot;: {&lt;br /&gt;
			&amp;quot;src&amp;quot;: &amp;quot;http://i.ebayimg.com/00/s/NDgwWDY0MA==/$(KGrHqR,!qYFEzKyYZ4UBRiR74Ns3w~~48_18.JPG&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;fuelType&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;Benzin&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;power&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;80 kW (109 PS)&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;transmission&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;Schaltgetriebe&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;climatisation&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;Klimaautomatik&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;adId&amp;quot;: 177478193,&lt;br /&gt;
		&amp;quot;priceModel&amp;quot;: {&lt;br /&gt;
			&amp;quot;type&amp;quot;: {},&lt;br /&gt;
			&amp;quot;secondaryPrice&amp;quot;: {&lt;br /&gt;
				&amp;quot;countryOfSale&amp;quot;: {&lt;br /&gt;
					&amp;quot;value&amp;quot;: &amp;quot;12.765 EUR (Netto)&amp;quot;&lt;br /&gt;
				},&lt;br /&gt;
				&amp;quot;countryOfOrigin&amp;quot;: {},&lt;br /&gt;
				&amp;quot;net&amp;quot;: true&lt;br /&gt;
			},&lt;br /&gt;
			&amp;quot;primaryPrice&amp;quot;: {&lt;br /&gt;
				&amp;quot;countryOfSale&amp;quot;: {&lt;br /&gt;
					&amp;quot;value&amp;quot;: &amp;quot;15.190 EUR (Brutto)&amp;quot;&lt;br /&gt;
				},&lt;br /&gt;
				&amp;quot;countryOfOrigin&amp;quot;: {},&lt;br /&gt;
				&amp;quot;net&amp;quot;: false&lt;br /&gt;
			},&lt;br /&gt;
			&amp;quot;previousPrice&amp;quot;: {},&lt;br /&gt;
			&amp;quot;deliveryCost&amp;quot;: {},&lt;br /&gt;
			&amp;quot;vatRate&amp;quot;: {&lt;br /&gt;
				&amp;quot;value&amp;quot;: &amp;quot;19,00% MwSt.&amp;quot;&lt;br /&gt;
			},&lt;br /&gt;
			&amp;quot;infoText&amp;quot;: {},&lt;br /&gt;
			&amp;quot;vatReclaimable&amp;quot;: true&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;makeModelDescription&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;Kia Rio Dream-Team Edition Navi Klima PDC SHZ&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;bodyType&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;Kleinwagen&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;usageType&amp;quot;: {&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;Neufahrzeug&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;firstRegistration&amp;quot;: {},&lt;br /&gt;
		&amp;quot;mileage&amp;quot;: {},&lt;br /&gt;
		&amp;quot;fuelConsumption&amp;quot;: [{&lt;br /&gt;
			&amp;quot;label&amp;quot;: &amp;quot;Kraftstoffverbr. komb.&amp;quot;,&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;5,5 l/100 km&amp;quot;,&lt;br /&gt;
			&amp;quot;link&amp;quot;: {}&lt;br /&gt;
		}, {&lt;br /&gt;
			&amp;quot;label&amp;quot;: &amp;quot;CO&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;-Emissionen komb.&amp;quot;,&lt;br /&gt;
			&amp;quot;value&amp;quot;: &amp;quot;128 g/km&amp;quot;,&lt;br /&gt;
			&amp;quot;link&amp;quot;: {}&lt;br /&gt;
		}],&lt;br /&gt;
		&amp;quot;usedCarSeal&amp;quot;: {&lt;br /&gt;
			&amp;quot;link&amp;quot;: {}&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;videoLinkPresent&amp;quot;: false,&lt;br /&gt;
		&amp;quot;newFlagged&amp;quot;: false,&lt;br /&gt;
		&amp;quot;advice&amp;quot;: {}&lt;br /&gt;
	}]&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Mobile.de API XML Definition ==&lt;br /&gt;
&lt;br /&gt;
=== Rückgabe bei allgemeiner Suche ===&lt;br /&gt;
&lt;br /&gt;
=== Rückgabe bei Detailsuche zu einem Fahrzeug ===&lt;br /&gt;
&lt;br /&gt;
Manche Werte lassen sich nur auslesen wenn ein Fahrzeug direkt abgefragt wird:&lt;br /&gt;
&lt;br /&gt;
http://services.mobile.de/schema/ad-1.0.xsd&lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;ad:ad xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot; xmlns:financing=&amp;quot;http://services.mobile.de/schema/common/financing-1.0&amp;quot; xmlns:seller=&amp;quot;http://services.mobile.de/schema/seller&amp;quot; xmlns:ad=&amp;quot;http://services.mobile.de/schema/ad&amp;quot; xmlns:resource=&amp;quot;http://services.mobile.de/schema/resource&amp;quot; key=&amp;quot;176596895&amp;quot; url=&amp;quot;http://services.mobile.de/1.0.0/ad/176596895&amp;quot; xsi:schemaLocation=&amp;quot;http://services.mobile.de/schema/ad http://services.mobile.de/schema/ad-1.0.xsd&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;ad:creation-date value=&amp;quot;2013-03-25T20:02:01+01:00&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;ad:modification-date value=&amp;quot;2013-07-21T10:30:07+02:00&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;ad:detail-page url=&amp;quot;http://suchen.mobile.de/auto-inserat/kia-rio-1-4-edition-7-navi-klima-alu-tagfahrlicht-bretten/176596895.html&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;ad:seller-inventory-key value=&amp;quot;6025652&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;ad:vehicle&amp;gt;&lt;br /&gt;
&amp;lt;ad:class key=&amp;quot;Car&amp;quot; url=&amp;quot;http://services.mobile.de/1.0.0/refdata/classes/Car&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;resource:local-description xml-lang=&amp;quot;de&amp;quot;&amp;gt;Pkw&amp;lt;/resource:local-description&amp;gt;&lt;br /&gt;
&amp;lt;/ad:class&amp;gt;&lt;br /&gt;
&amp;lt;ad:category key=&amp;quot;SmallCar&amp;quot; url=&amp;quot;http://services.mobile.de/1.0.0/refdata/categories/SmallCar&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;resource:local-description xml-lang=&amp;quot;de&amp;quot;&amp;gt;Kleinwagen&amp;lt;/resource:local-description&amp;gt;&lt;br /&gt;
&amp;lt;/ad:category&amp;gt;&lt;br /&gt;
&amp;lt;ad:make key=&amp;quot;KIA&amp;quot; url=&amp;quot;http://services.mobile.de/1.0.0/refdata/classes/Car/makes/KIA&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;resource:local-description xml-lang=&amp;quot;de&amp;quot;&amp;gt;Kia&amp;lt;/resource:local-description&amp;gt;&lt;br /&gt;
&amp;lt;/ad:make&amp;gt;&lt;br /&gt;
&amp;lt;ad:model key=&amp;quot;Rio&amp;quot; url=&amp;quot;http://services.mobile.de/1.0.0/refdata/classes/Car/makes/KIA/models/Rio&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;resource:local-description xml-lang=&amp;quot;de&amp;quot;&amp;gt;Rio&amp;lt;/resource:local-description&amp;gt;&lt;br /&gt;
&amp;lt;/ad:model&amp;gt;&lt;br /&gt;
&amp;lt;ad:model-description value=&amp;quot;Rio 1.4 Edition 7 Navi Klima Alu Tagfahrlicht&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;ad:damage-and-unrepaired value=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;ad:features url=&amp;quot;http://services.mobile.de/1.0.0/refdata/features&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;ad:feature key=&amp;quot;METALLIC&amp;quot; url=&amp;quot;http://services.mobile.de/1.0.0/refdata/features/METALLIC&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;resource:local-description xml-lang=&amp;quot;de&amp;quot;&amp;gt;Metallic&amp;lt;/resource:local-description&amp;gt;&lt;br /&gt;
&amp;lt;/ad:feature&amp;gt;&lt;br /&gt;
&amp;lt;ad:feature key=&amp;quot;ALLOY_WHEELS&amp;quot; url=&amp;quot;http://services.mobile.de/1.0.0/refdata/features/ALLOY_WHEELS&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;resource:local-description xml-lang=&amp;quot;de&amp;quot;&amp;gt;Leichtmetallfelgen&amp;lt;/resource:local-description&amp;gt;&lt;br /&gt;
&amp;lt;/ad:feature&amp;gt;&lt;br /&gt;
&amp;lt;ad:feature key=&amp;quot;CENTRAL_LOCKING&amp;quot; url=&amp;quot;http://services.mobile.de/1.0.0/refdata/features/CENTRAL_LOCKING&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;resource:local-description xml-lang=&amp;quot;de&amp;quot;&amp;gt;Zentralverriegelung&amp;lt;/resource:local-description&amp;gt;&lt;br /&gt;
&amp;lt;/ad:feature&amp;gt;&lt;br /&gt;
&amp;lt;ad:feature key=&amp;quot;ELECTRIC_WINDOWS&amp;quot; url=&amp;quot;http://services.mobile.de/1.0.0/refdata/features/ELECTRIC_WINDOWS&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;resource:local-description xml-lang=&amp;quot;de&amp;quot;&amp;gt;El. Fensterheber&amp;lt;/resource:local-description&amp;gt;&lt;br /&gt;
&amp;lt;/ad:feature&amp;gt;&lt;br /&gt;
&amp;lt;ad:feature key=&amp;quot;IMMOBILIZER&amp;quot; url=&amp;quot;http://services.mobile.de/1.0.0/refdata/features/IMMOBILIZER&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;resource:local-description xml-lang=&amp;quot;de&amp;quot;&amp;gt;El. Wegfahrsperre&amp;lt;/resource:local-description&amp;gt;&lt;br /&gt;
&amp;lt;/ad:feature&amp;gt;&lt;br /&gt;
&amp;lt;ad:feature key=&amp;quot;POWER_ASSISTED_STEERING&amp;quot; url=&amp;quot;http://services.mobile.de/1.0.0/refdata/features/POWER_ASSISTED_STEERING&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;resource:local-description xml-lang=&amp;quot;de&amp;quot;&amp;gt;Servolenkung&amp;lt;/resource:local-description&amp;gt;&lt;br /&gt;
&amp;lt;/ad:feature&amp;gt;&lt;br /&gt;
&amp;lt;ad:feature key=&amp;quot;ABS&amp;quot; url=&amp;quot;http://services.mobile.de/1.0.0/refdata/features/ABS&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;resource:local-description xml-lang=&amp;quot;de&amp;quot;&amp;gt;ABS&amp;lt;/resource:local-description&amp;gt;&lt;br /&gt;
&amp;lt;/ad:feature&amp;gt;&lt;br /&gt;
&amp;lt;ad:feature key=&amp;quot;ESP&amp;quot; url=&amp;quot;http://services.mobile.de/1.0.0/refdata/features/ESP&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;resource:local-description xml-lang=&amp;quot;de&amp;quot;&amp;gt;ESP&amp;lt;/resource:local-description&amp;gt;&lt;br /&gt;
&amp;lt;/ad:feature&amp;gt;&lt;br /&gt;
&amp;lt;ad:feature key=&amp;quot;NAVIGATION_SYSTEM&amp;quot; url=&amp;quot;http://services.mobile.de/1.0.0/refdata/features/NAVIGATION_SYSTEM&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;resource:local-description xml-lang=&amp;quot;de&amp;quot;&amp;gt;Navigationssystem&amp;lt;/resource:local-description&amp;gt;&lt;br /&gt;
&amp;lt;/ad:feature&amp;gt;&lt;br /&gt;
&amp;lt;ad:feature key=&amp;quot;FULL_SERVICE_HISTORY&amp;quot; url=&amp;quot;http://services.mobile.de/1.0.0/refdata/features/FULL_SERVICE_HISTORY&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;resource:local-description xml-lang=&amp;quot;de&amp;quot;&amp;gt;Scheckheftgepflegt&amp;lt;/resource:local-description&amp;gt;&lt;br /&gt;
&amp;lt;/ad:feature&amp;gt;&lt;br /&gt;
&amp;lt;ad:feature key=&amp;quot;WARRANTY&amp;quot; url=&amp;quot;http://services.mobile.de/1.0.0/refdata/features/WARRANTY&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;resource:local-description xml-lang=&amp;quot;de&amp;quot;&amp;gt;Garantie&amp;lt;/resource:local-description&amp;gt;&lt;br /&gt;
&amp;lt;/ad:feature&amp;gt;&lt;br /&gt;
&amp;lt;ad:feature key=&amp;quot;ELECTRIC_EXTERIOR_MIRRORS&amp;quot; url=&amp;quot;http://services.mobile.de/1.0.0/refdata/features/ELECTRIC_EXTERIOR_MIRRORS&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;resource:local-description xml-lang=&amp;quot;de&amp;quot;&amp;gt;Elektrische Seitenspiegel&amp;lt;/resource:local-description&amp;gt;&lt;br /&gt;
&amp;lt;/ad:feature&amp;gt;&lt;br /&gt;
&amp;lt;ad:feature key=&amp;quot;BLUETOOTH&amp;quot; url=&amp;quot;http://services.mobile.de/1.0.0/refdata/features/BLUETOOTH&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;resource:local-description xml-lang=&amp;quot;de&amp;quot;&amp;gt;Bluetooth&amp;lt;/resource:local-description&amp;gt;&lt;br /&gt;
&amp;lt;/ad:feature&amp;gt;&lt;br /&gt;
&amp;lt;ad:feature key=&amp;quot;CD_PLAYER&amp;quot; url=&amp;quot;http://services.mobile.de/1.0.0/refdata/features/CD_PLAYER&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;resource:local-description xml-lang=&amp;quot;de&amp;quot;&amp;gt;CD-Spieler&amp;lt;/resource:local-description&amp;gt;&lt;br /&gt;
&amp;lt;/ad:feature&amp;gt;&lt;br /&gt;
&amp;lt;ad:feature key=&amp;quot;MP3_INTERFACE&amp;quot; url=&amp;quot;http://services.mobile.de/1.0.0/refdata/features/MP3_INTERFACE&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;resource:local-description xml-lang=&amp;quot;de&amp;quot;&amp;gt;MP3-Schnittstelle&amp;lt;/resource:local-description&amp;gt;&lt;br /&gt;
&amp;lt;/ad:feature&amp;gt;&lt;br /&gt;
&amp;lt;ad:feature key=&amp;quot;MULTIFUNCTIONAL_WHEEL&amp;quot; url=&amp;quot;http://services.mobile.de/1.0.0/refdata/features/MULTIFUNCTIONAL_WHEEL&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;resource:local-description xml-lang=&amp;quot;de&amp;quot;&amp;gt;Multifunktionslenkrad&amp;lt;/resource:local-description&amp;gt;&lt;br /&gt;
&amp;lt;/ad:feature&amp;gt;&lt;br /&gt;
&amp;lt;ad:feature key=&amp;quot;TUNER&amp;quot; url=&amp;quot;http://services.mobile.de/1.0.0/refdata/features/TUNER&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;resource:local-description xml-lang=&amp;quot;de&amp;quot;&amp;gt;Tuner/Radio&amp;lt;/resource:local-description&amp;gt;&lt;br /&gt;
&amp;lt;/ad:feature&amp;gt;&lt;br /&gt;
&amp;lt;ad:feature key=&amp;quot;ISOFIX&amp;quot; url=&amp;quot;http://services.mobile.de/1.0.0/refdata/features/ISOFIX&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;resource:local-description xml-lang=&amp;quot;de&amp;quot;&amp;gt;Isofix (Kindersitzbefestigung)&amp;lt;/resource:local-description&amp;gt;&lt;br /&gt;
&amp;lt;/ad:feature&amp;gt;&lt;br /&gt;
&amp;lt;ad:feature key=&amp;quot;DAYTIME_RUNNING_LIGHTS&amp;quot; url=&amp;quot;http://services.mobile.de/1.0.0/refdata/features/DAYTIME_RUNNING_LIGHTS&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;resource:local-description xml-lang=&amp;quot;de&amp;quot;&amp;gt;Tagfahrlicht&amp;lt;/resource:local-description&amp;gt;&lt;br /&gt;
&amp;lt;/ad:feature&amp;gt;&lt;br /&gt;
&amp;lt;/ad:features&amp;gt;&lt;br /&gt;
&amp;lt;ad:specifics&amp;gt;&lt;br /&gt;
&amp;lt;ad:exterior-color key=&amp;quot;BLACK&amp;quot; url=&amp;quot;http://services.mobile.de/1.0.0/refdata/colors/BLACK&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;resource:local-description xml-lang=&amp;quot;de&amp;quot;&amp;gt;Schwarz&amp;lt;/resource:local-description&amp;gt;&lt;br /&gt;
&amp;lt;ad:metalic value=&amp;quot;true&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;ad:manufacturer-color-name value=&amp;quot;schwarz&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/ad:exterior-color&amp;gt;&lt;br /&gt;
&amp;lt;ad:mileage value=&amp;quot;19&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;ad:door-count key=&amp;quot;FOUR_OR_FIVE&amp;quot; url=&amp;quot;http://services.mobile.de/1.0.0/refdata/doorcounts/FOUR_OR_FIVE&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;resource:local-description xml-lang=&amp;quot;de&amp;quot;&amp;gt;4/5&amp;lt;/resource:local-description&amp;gt;&lt;br /&gt;
&amp;lt;/ad:door-count&amp;gt;&lt;br /&gt;
&amp;lt;ad:first-registration value=&amp;quot;2012-12&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;ad:emission-class key=&amp;quot;EURO5&amp;quot; url=&amp;quot;http://services.mobile.de/1.0.0/refdata/emissionclasses/EURO5&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;resource:local-description xml-lang=&amp;quot;de&amp;quot;&amp;gt;Euro5&amp;lt;/resource:local-description&amp;gt;&lt;br /&gt;
&amp;lt;/ad:emission-class&amp;gt;&lt;br /&gt;
&amp;lt;ad:emission-fuel-consumption envkv-compliant=&amp;quot;true&amp;quot; energy-efficiency-class=&amp;quot;D&amp;quot; co2-emission=&amp;quot;128&amp;quot; inner=&amp;quot;7.2&amp;quot; outer=&amp;quot;4.5&amp;quot; combined=&amp;quot;5.5&amp;quot; unit=&amp;quot;LITER_PER_100_KM&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;ad:emission-sticker key=&amp;quot;EMISSIONSSTICKER_GREEN&amp;quot; url=&amp;quot;http://services.mobile.de/1.0.0/refdata/emissionstickers/EMISSIONSSTICKER_GREEN&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;resource:local-description xml-lang=&amp;quot;de&amp;quot;&amp;gt;4 (Grün)&amp;lt;/resource:local-description&amp;gt;&lt;br /&gt;
&amp;lt;/ad:emission-sticker&amp;gt;&lt;br /&gt;
&amp;lt;ad:fuel key=&amp;quot;PETROL&amp;quot; url=&amp;quot;http://services.mobile.de/1.0.0/refdata/fuels/PETROL&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;resource:local-description xml-lang=&amp;quot;de&amp;quot;&amp;gt;Benzin&amp;lt;/resource:local-description&amp;gt;&lt;br /&gt;
&amp;lt;/ad:fuel&amp;gt;&lt;br /&gt;
&amp;lt;ad:power value=&amp;quot;80&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;ad:kba hsn=&amp;quot;8253&amp;quot; tsn=&amp;quot;ADT&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;ad:gearbox key=&amp;quot;MANUAL_GEAR&amp;quot; url=&amp;quot;http://services.mobile.de/1.0.0/refdata/gearboxes/MANUAL_GEAR&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;resource:local-description xml-lang=&amp;quot;de&amp;quot;&amp;gt;Schaltgetriebe&amp;lt;/resource:local-description&amp;gt;&lt;br /&gt;
&amp;lt;/ad:gearbox&amp;gt;&lt;br /&gt;
&amp;lt;ad:climatisation key=&amp;quot;MANUAL_CLIMATISATION&amp;quot; url=&amp;quot;http://services.mobile.de/1.0.0/refdata/climatisations/MANUAL_CLIMATISATION&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;resource:local-description xml-lang=&amp;quot;de&amp;quot;&amp;gt;Klimaanlage&amp;lt;/resource:local-description&amp;gt;&lt;br /&gt;
&amp;lt;/ad:climatisation&amp;gt;&lt;br /&gt;
&amp;lt;ad:num-seats value=&amp;quot;5&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;ad:cubic-capacity value=&amp;quot;1396&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;ad:condition key=&amp;quot;USED&amp;quot; url=&amp;quot;http://services.mobile.de/1.0.0/refdata/conditions/USED&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;resource:local-description xml-lang=&amp;quot;de&amp;quot;&amp;gt;Gebrauchtfahrzeug&amp;lt;/resource:local-description&amp;gt;&lt;br /&gt;
&amp;lt;/ad:condition&amp;gt;&lt;br /&gt;
&amp;lt;ad:usage-type key=&amp;quot;PRE_REGISTRATION&amp;quot; url=&amp;quot;http://services.mobile.de/1.0.0/refdata/usagetypes/PRE_REGISTRATION&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;resource:local-description xml-lang=&amp;quot;de&amp;quot;&amp;gt;Tageszulassung&amp;lt;/resource:local-description&amp;gt;&lt;br /&gt;
&amp;lt;/ad:usage-type&amp;gt;&lt;br /&gt;
&amp;lt;ad:delivery-date value=&amp;quot;2013-03-21+01:00&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;ad:identification-number value=&amp;quot;KNADM512AC6025652&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;ad:interior-color key=&amp;quot;BLACK&amp;quot; url=&amp;quot;http://services.mobile.de/1.0.0/refdata/interiorColors/BLACK&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;resource:local-description xml-lang=&amp;quot;de&amp;quot;&amp;gt;Schwarz&amp;lt;/resource:local-description&amp;gt;&lt;br /&gt;
&amp;lt;/ad:interior-color&amp;gt;&lt;br /&gt;
&amp;lt;ad:interior-type key=&amp;quot;FABRIC&amp;quot; url=&amp;quot;http://services.mobile.de/1.0.0/refdata/interiorTypes/FABRIC&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;resource:local-description xml-lang=&amp;quot;de&amp;quot;&amp;gt;Stoff&amp;lt;/resource:local-description&amp;gt;&lt;br /&gt;
&amp;lt;/ad:interior-type&amp;gt;&lt;br /&gt;
&amp;lt;ad:airbag key=&amp;quot;FRONT_AND_SIDE_AIRBAGS&amp;quot; url=&amp;quot;http://services.mobile.de/1.0.0/refdata/airbags/FRONT_AND_SIDE_AIRBAGS&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;resource:local-description xml-lang=&amp;quot;de&amp;quot;&amp;gt;Front- und Seiten-Airbags&amp;lt;/resource:local-description&amp;gt;&lt;br /&gt;
&amp;lt;/ad:airbag&amp;gt;&lt;br /&gt;
&amp;lt;ad:number-of-previous-owners&amp;gt;1&amp;lt;/ad:number-of-previous-owners&amp;gt;&lt;br /&gt;
&amp;lt;/ad:specifics&amp;gt;&lt;br /&gt;
&amp;lt;/ad:vehicle&amp;gt;&lt;br /&gt;
&amp;lt;ad:description&amp;gt;&lt;br /&gt;
- Navigationssystem portabel, Multifunktionslenkrad, Lenksaeule einstellbar, Audiosystem KIA CD, MP3, Bluetooth, Außenspiegel elektr. verstell- und heizbar, Berg-Anfahr-Assistent, Isofix-Aufnahmen für Kindersitz, Laderaumabdeckung, Rücksitzlehne geteilt/klappbar, Steckdose (12V-Anschluß) in Mittelkonsol, Tagesfahrlicht, USB-Anschluss + AUX-IN-Anschluss, Wärmeschutzverglasung, Zentralverriegelung mit Fernbedienung, 7 Jahre Hersteller Garantie - Irrtümer in Text und Bild sowie Verkauf vorbehalten -&lt;br /&gt;
&amp;lt;/ad:description&amp;gt;&lt;br /&gt;
&amp;lt;ad:enrichedDescription&amp;gt;&lt;br /&gt;
* Navigationssystem portabel\\* ****Multifunktionslenkrad\\* Lenksaeule einstellbar\\* Audiosystem KIA CD\\* MP3\\* Bluetooth\\* Außenspiegel elektr. verstell- und heizbar\\* Berg-Anfahr-Assistent\\* Isofix-Aufnahmen für Kindersitz\\* Laderaumabdeckung\\* Rücksitzlehne geteilt/klappbar\\* Steckdose (12V-Anschluß) in Mittelkonsol\\* Tagesfahrlicht\\* USB-Anschluss + AUX-IN-Anschluss\\* Wärmeschutzverglasung\\* Zentralverriegelung mit Fernbedienung\\* 7 Jahre Hersteller Garantie\\**Irrtümer in Text und Bild sowie Verkauf vorbehalten**\\****&lt;br /&gt;
&amp;lt;/ad:enrichedDescription&amp;gt;&lt;br /&gt;
&amp;lt;ad:images gallery-url=&amp;quot;http://i.ebayimg.com/00/$T2eC16h,!zQE9s3suFrkBRTUm1Hp2w~~_23.JPG&amp;quot; url=&amp;quot;http://services.mobile.de/1.0.0/ad/176596895/images&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;ad:image&amp;gt;&lt;br /&gt;
&amp;lt;ad:representation size=&amp;quot;ICON&amp;quot; url=&amp;quot;http://i.ebayimg.com/00/$T2eC16h,!zQE9s3suFrkBRTUm1Hp2w~~_23.JPG&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;ad:representation size=&amp;quot;S&amp;quot; url=&amp;quot;http://i.ebayimg.com/00/$T2eC16h,!zQE9s3suFrkBRTUm1Hp2w~~_18.JPG&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;ad:representation size=&amp;quot;L&amp;quot; url=&amp;quot;http://i.ebayimg.com/00/$T2eC16h,!zQE9s3suFrkBRTUm1Hp2w~~_19.JPG&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;ad:representation size=&amp;quot;M&amp;quot; url=&amp;quot;http://i.ebayimg.com/00/$T2eC16h,!zQE9s3suFrkBRTUm1Hp2w~~_24.JPG&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;ad:representation size=&amp;quot;XL&amp;quot; url=&amp;quot;http://i.ebayimg.com/00/$T2eC16h,!zQE9s3suFrkBRTUm1Hp2w~~_27.JPG&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/ad:image&amp;gt;&lt;br /&gt;
&amp;lt;ad:image&amp;gt;&lt;br /&gt;
&amp;lt;ad:representation size=&amp;quot;ICON&amp;quot; url=&amp;quot;http://i.ebayimg.com/00/$T2eC16F,!)kE9s4Z-UYGBRFzJERQmw~~_23.JPG&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;ad:representation size=&amp;quot;S&amp;quot; url=&amp;quot;http://i.ebayimg.com/00/$T2eC16F,!)kE9s4Z-UYGBRFzJERQmw~~_18.JPG&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;ad:representation size=&amp;quot;L&amp;quot; url=&amp;quot;http://i.ebayimg.com/00/$T2eC16F,!)kE9s4Z-UYGBRFzJERQmw~~_19.JPG&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;ad:representation size=&amp;quot;M&amp;quot; url=&amp;quot;http://i.ebayimg.com/00/$T2eC16F,!)kE9s4Z-UYGBRFzJERQmw~~_24.JPG&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;ad:representation size=&amp;quot;XL&amp;quot; url=&amp;quot;http://i.ebayimg.com/00/$T2eC16F,!)kE9s4Z-UYGBRFzJERQmw~~_27.JPG&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/ad:image&amp;gt;&lt;br /&gt;
&amp;lt;ad:image&amp;gt;&lt;br /&gt;
&amp;lt;ad:representation size=&amp;quot;ICON&amp;quot; url=&amp;quot;http://i.ebayimg.com/00/$T2eC16JHJGIE9nnWpg44BRFzJD6vhw~~_23.JPG&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;ad:representation size=&amp;quot;S&amp;quot; url=&amp;quot;http://i.ebayimg.com/00/$T2eC16JHJGIE9nnWpg44BRFzJD6vhw~~_18.JPG&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;ad:representation size=&amp;quot;L&amp;quot; url=&amp;quot;http://i.ebayimg.com/00/$T2eC16JHJGIE9nnWpg44BRFzJD6vhw~~_19.JPG&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;ad:representation size=&amp;quot;M&amp;quot; url=&amp;quot;http://i.ebayimg.com/00/$T2eC16JHJGIE9nnWpg44BRFzJD6vhw~~_24.JPG&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;ad:representation size=&amp;quot;XL&amp;quot; url=&amp;quot;http://i.ebayimg.com/00/$T2eC16JHJGIE9nnWpg44BRFzJD6vhw~~_27.JPG&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/ad:image&amp;gt;&lt;br /&gt;
&amp;lt;ad:image&amp;gt;&lt;br /&gt;
&amp;lt;ad:representation size=&amp;quot;ICON&amp;quot; url=&amp;quot;http://i.ebayimg.com/00/$T2eC16ZHJHEE9ny2sYejBRF2zni(Pg~~_23.JPG&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;ad:representation size=&amp;quot;S&amp;quot; url=&amp;quot;http://i.ebayimg.com/00/$T2eC16ZHJHEE9ny2sYejBRF2zni(Pg~~_18.JPG&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;ad:representation size=&amp;quot;L&amp;quot; url=&amp;quot;http://i.ebayimg.com/00/$T2eC16ZHJHEE9ny2sYejBRF2zni(Pg~~_19.JPG&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;ad:representation size=&amp;quot;M&amp;quot; url=&amp;quot;http://i.ebayimg.com/00/$T2eC16ZHJHEE9ny2sYejBRF2zni(Pg~~_24.JPG&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;ad:representation size=&amp;quot;XL&amp;quot; url=&amp;quot;http://i.ebayimg.com/00/$T2eC16ZHJHEE9ny2sYejBRF2zni(Pg~~_27.JPG&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/ad:image&amp;gt;&lt;br /&gt;
&amp;lt;ad:image&amp;gt;&lt;br /&gt;
&amp;lt;ad:representation size=&amp;quot;ICON&amp;quot; url=&amp;quot;http://i.ebayimg.com/00/$(KGrHqV,!n0FD+Mn4YH8BRFzJERvr!~~_23.JPG&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;ad:representation size=&amp;quot;S&amp;quot; url=&amp;quot;http://i.ebayimg.com/00/$(KGrHqV,!n0FD+Mn4YH8BRFzJERvr!~~_18.JPG&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;ad:representation size=&amp;quot;L&amp;quot; url=&amp;quot;http://i.ebayimg.com/00/$(KGrHqV,!n0FD+Mn4YH8BRFzJERvr!~~_19.JPG&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;ad:representation size=&amp;quot;M&amp;quot; url=&amp;quot;http://i.ebayimg.com/00/$(KGrHqV,!n0FD+Mn4YH8BRFzJERvr!~~_24.JPG&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;ad:representation size=&amp;quot;XL&amp;quot; url=&amp;quot;http://i.ebayimg.com/00/$(KGrHqV,!n0FD+Mn4YH8BRFzJERvr!~~_27.JPG&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/ad:image&amp;gt;&lt;br /&gt;
&amp;lt;ad:image&amp;gt;&lt;br /&gt;
&amp;lt;ad:representation size=&amp;quot;ICON&amp;quot; url=&amp;quot;http://i.ebayimg.com/00/$T2eC16dHJGIE9nnWrcswBRFzJElv)!~~_23.JPG&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;ad:representation size=&amp;quot;S&amp;quot; url=&amp;quot;http://i.ebayimg.com/00/$T2eC16dHJGIE9nnWrcswBRFzJElv)!~~_18.JPG&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;ad:representation size=&amp;quot;L&amp;quot; url=&amp;quot;http://i.ebayimg.com/00/$T2eC16dHJGIE9nnWrcswBRFzJElv)!~~_19.JPG&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;ad:representation size=&amp;quot;M&amp;quot; url=&amp;quot;http://i.ebayimg.com/00/$T2eC16dHJGIE9nnWrcswBRFzJElv)!~~_24.JPG&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;ad:representation size=&amp;quot;XL&amp;quot; url=&amp;quot;http://i.ebayimg.com/00/$T2eC16dHJGIE9nnWrcswBRFzJElv)!~~_27.JPG&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/ad:image&amp;gt;&lt;br /&gt;
&amp;lt;ad:image&amp;gt;&lt;br /&gt;
&amp;lt;ad:representation size=&amp;quot;ICON&amp;quot; url=&amp;quot;http://i.ebayimg.com/00/$(KGrHqF,!jEFDqg+gbZMBRFzJGFyZQ~~_23.JPG&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;ad:representation size=&amp;quot;S&amp;quot; url=&amp;quot;http://i.ebayimg.com/00/$(KGrHqF,!jEFDqg+gbZMBRFzJGFyZQ~~_18.JPG&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;ad:representation size=&amp;quot;L&amp;quot; url=&amp;quot;http://i.ebayimg.com/00/$(KGrHqF,!jEFDqg+gbZMBRFzJGFyZQ~~_19.JPG&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;ad:representation size=&amp;quot;M&amp;quot; url=&amp;quot;http://i.ebayimg.com/00/$(KGrHqF,!jEFDqg+gbZMBRFzJGFyZQ~~_24.JPG&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;ad:representation size=&amp;quot;XL&amp;quot; url=&amp;quot;http://i.ebayimg.com/00/$(KGrHqF,!jEFDqg+gbZMBRFzJGFyZQ~~_27.JPG&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/ad:image&amp;gt;&lt;br /&gt;
&amp;lt;ad:image&amp;gt;&lt;br /&gt;
&amp;lt;ad:representation size=&amp;quot;ICON&amp;quot; url=&amp;quot;http://i.ebayimg.com/00/$(KGrHqJ,!g4FEM81pJ3OBRFzJEiGuQ~~_23.JPG&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;ad:representation size=&amp;quot;S&amp;quot; url=&amp;quot;http://i.ebayimg.com/00/$(KGrHqJ,!g4FEM81pJ3OBRFzJEiGuQ~~_18.JPG&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;ad:representation size=&amp;quot;L&amp;quot; url=&amp;quot;http://i.ebayimg.com/00/$(KGrHqJ,!g4FEM81pJ3OBRFzJEiGuQ~~_19.JPG&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;ad:representation size=&amp;quot;M&amp;quot; url=&amp;quot;http://i.ebayimg.com/00/$(KGrHqJ,!g4FEM81pJ3OBRFzJEiGuQ~~_24.JPG&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;ad:representation size=&amp;quot;XL&amp;quot; url=&amp;quot;http://i.ebayimg.com/00/$(KGrHqJ,!g4FEM81pJ3OBRFzJEiGuQ~~_27.JPG&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/ad:image&amp;gt;&lt;br /&gt;
&amp;lt;ad:image&amp;gt;&lt;br /&gt;
&amp;lt;ad:representation size=&amp;quot;ICON&amp;quot; url=&amp;quot;http://i.ebayimg.com/00/$(KGrHqFHJEoFER,IJ9seBRFzJEktw!~~_23.JPG&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;ad:representation size=&amp;quot;S&amp;quot; url=&amp;quot;http://i.ebayimg.com/00/$(KGrHqFHJEoFER,IJ9seBRFzJEktw!~~_18.JPG&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;ad:representation size=&amp;quot;L&amp;quot; url=&amp;quot;http://i.ebayimg.com/00/$(KGrHqFHJEoFER,IJ9seBRFzJEktw!~~_19.JPG&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;ad:representation size=&amp;quot;M&amp;quot; url=&amp;quot;http://i.ebayimg.com/00/$(KGrHqFHJEoFER,IJ9seBRFzJEktw!~~_24.JPG&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;ad:representation size=&amp;quot;XL&amp;quot; url=&amp;quot;http://i.ebayimg.com/00/$(KGrHqFHJEoFER,IJ9seBRFzJEktw!~~_27.JPG&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/ad:image&amp;gt;&lt;br /&gt;
&amp;lt;ad:image&amp;gt;&lt;br /&gt;
&amp;lt;ad:representation size=&amp;quot;ICON&amp;quot; url=&amp;quot;http://i.ebayimg.com/00/$(KGrHqR,!rYFDe!iwhSeBRFzJEjrcw~~_23.JPG&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;ad:representation size=&amp;quot;S&amp;quot; url=&amp;quot;http://i.ebayimg.com/00/$(KGrHqR,!rYFDe!iwhSeBRFzJEjrcw~~_18.JPG&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;ad:representation size=&amp;quot;L&amp;quot; url=&amp;quot;http://i.ebayimg.com/00/$(KGrHqR,!rYFDe!iwhSeBRFzJEjrcw~~_19.JPG&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;ad:representation size=&amp;quot;M&amp;quot; url=&amp;quot;http://i.ebayimg.com/00/$(KGrHqR,!rYFDe!iwhSeBRFzJEjrcw~~_24.JPG&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;ad:representation size=&amp;quot;XL&amp;quot; url=&amp;quot;http://i.ebayimg.com/00/$(KGrHqR,!rYFDe!iwhSeBRFzJEjrcw~~_27.JPG&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/ad:image&amp;gt;&lt;br /&gt;
&amp;lt;ad:image&amp;gt;&lt;br /&gt;
&amp;lt;ad:representation size=&amp;quot;ICON&amp;quot; url=&amp;quot;http://i.ebayimg.com/00/$(KGrHqFHJFYFEOwSFnloBRFzJEj2EQ~~_23.JPG&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;ad:representation size=&amp;quot;S&amp;quot; url=&amp;quot;http://i.ebayimg.com/00/$(KGrHqFHJFYFEOwSFnloBRFzJEj2EQ~~_18.JPG&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;ad:representation size=&amp;quot;L&amp;quot; url=&amp;quot;http://i.ebayimg.com/00/$(KGrHqFHJFYFEOwSFnloBRFzJEj2EQ~~_19.JPG&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;ad:representation size=&amp;quot;M&amp;quot; url=&amp;quot;http://i.ebayimg.com/00/$(KGrHqFHJFYFEOwSFnloBRFzJEj2EQ~~_24.JPG&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;ad:representation size=&amp;quot;XL&amp;quot; url=&amp;quot;http://i.ebayimg.com/00/$(KGrHqFHJFYFEOwSFnloBRFzJEj2EQ~~_27.JPG&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/ad:image&amp;gt;&lt;br /&gt;
&amp;lt;ad:image&amp;gt;&lt;br /&gt;
&amp;lt;ad:representation size=&amp;quot;ICON&amp;quot; url=&amp;quot;http://i.ebayimg.com/00/$(KGrHqF,!p0FEHpC1T3hBRFzJEluow~~_23.JPG&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;ad:representation size=&amp;quot;S&amp;quot; url=&amp;quot;http://i.ebayimg.com/00/$(KGrHqF,!p0FEHpC1T3hBRFzJEluow~~_18.JPG&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;ad:representation size=&amp;quot;L&amp;quot; url=&amp;quot;http://i.ebayimg.com/00/$(KGrHqF,!p0FEHpC1T3hBRFzJEluow~~_19.JPG&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;ad:representation size=&amp;quot;M&amp;quot; url=&amp;quot;http://i.ebayimg.com/00/$(KGrHqF,!p0FEHpC1T3hBRFzJEluow~~_24.JPG&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;ad:representation size=&amp;quot;XL&amp;quot; url=&amp;quot;http://i.ebayimg.com/00/$(KGrHqF,!p0FEHpC1T3hBRFzJEluow~~_27.JPG&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/ad:image&amp;gt;&lt;br /&gt;
&amp;lt;ad:image&amp;gt;&lt;br /&gt;
&amp;lt;ad:representation size=&amp;quot;ICON&amp;quot; url=&amp;quot;http://i.ebayimg.com/00/$T2eC16NHJHQE9nzE)jldBRFzJEnHHg~~_23.JPG&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;ad:representation size=&amp;quot;S&amp;quot; url=&amp;quot;http://i.ebayimg.com/00/$T2eC16NHJHQE9nzE)jldBRFzJEnHHg~~_18.JPG&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;ad:representation size=&amp;quot;L&amp;quot; url=&amp;quot;http://i.ebayimg.com/00/$T2eC16NHJHQE9nzE)jldBRFzJEnHHg~~_19.JPG&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;ad:representation size=&amp;quot;M&amp;quot; url=&amp;quot;http://i.ebayimg.com/00/$T2eC16NHJHQE9nzE)jldBRFzJEnHHg~~_24.JPG&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;ad:representation size=&amp;quot;XL&amp;quot; url=&amp;quot;http://i.ebayimg.com/00/$T2eC16NHJHQE9nzE)jldBRFzJEnHHg~~_27.JPG&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/ad:image&amp;gt;&lt;br /&gt;
&amp;lt;ad:image&amp;gt;&lt;br /&gt;
&amp;lt;ad:representation size=&amp;quot;ICON&amp;quot; url=&amp;quot;http://i.ebayimg.com/00/$(KGrHqV,!n0FBZy3hOwvBQdPmmoRCQ~~_23.JPG&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;ad:representation size=&amp;quot;S&amp;quot; url=&amp;quot;http://i.ebayimg.com/00/$(KGrHqV,!n0FBZy3hOwvBQdPmmoRCQ~~_18.JPG&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;ad:representation size=&amp;quot;L&amp;quot; url=&amp;quot;http://i.ebayimg.com/00/$(KGrHqV,!n0FBZy3hOwvBQdPmmoRCQ~~_19.JPG&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;ad:representation size=&amp;quot;M&amp;quot; url=&amp;quot;http://i.ebayimg.com/00/$(KGrHqV,!n0FBZy3hOwvBQdPmmoRCQ~~_24.JPG&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;ad:representation size=&amp;quot;XL&amp;quot; url=&amp;quot;http://i.ebayimg.com/00/$(KGrHqV,!n0FBZy3hOwvBQdPmmoRCQ~~_27.JPG&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/ad:image&amp;gt;&lt;br /&gt;
&amp;lt;/ad:images&amp;gt;&lt;br /&gt;
&amp;lt;ad:price currency=&amp;quot;EUR&amp;quot; type=&amp;quot;FIXED&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;ad:consumer-price-amount value=&amp;quot;13990.00&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;ad:vatable value=&amp;quot;true&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;ad:vat-rate value=&amp;quot;0.1900&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/ad:price&amp;gt;&lt;br /&gt;
&amp;lt;seller:seller key=&amp;quot;461731&amp;quot; url=&amp;quot;http://services.mobile.de/1.0.0/seller/461731&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;seller:type value=&amp;quot;DEALER&amp;quot; commercial=&amp;quot;true&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;seller:company-name value=&amp;quot;Wetzel Motors GmbH&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;seller:address&amp;gt;&lt;br /&gt;
&amp;lt;seller:street value=&amp;quot;Melanchthonstrasse 89&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;seller:zipcode value=&amp;quot;75015&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;seller:city value=&amp;quot;Bretten&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;seller:country-code value=&amp;quot;DE&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/seller:address&amp;gt;&lt;br /&gt;
&amp;lt;seller:phone type=&amp;quot;FIXED&amp;quot; country-calling-code=&amp;quot;49&amp;quot; area-code=&amp;quot;07252&amp;quot; number=&amp;quot;94660&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;seller:phone type=&amp;quot;FAX&amp;quot; country-calling-code=&amp;quot;49&amp;quot; area-code=&amp;quot;07252&amp;quot; number=&amp;quot;946660&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;seller:email value=&amp;quot;info@wetzel-motors.de&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;seller:homepage value=&amp;quot;http://www.wetzel-motors.de&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;seller:mobile-seller-since value=&amp;quot;2002-05-22+02:00&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;seller:coordinates&amp;gt;&lt;br /&gt;
&amp;lt;seller:latitude&amp;gt;49.038500&amp;lt;/seller:latitude&amp;gt;&lt;br /&gt;
&amp;lt;seller:longitude&amp;gt;8.697401&amp;lt;/seller:longitude&amp;gt;&lt;br /&gt;
&amp;lt;/seller:coordinates&amp;gt;&lt;br /&gt;
&amp;lt;seller:logo-image&amp;gt;&lt;br /&gt;
&amp;lt;seller:representation size=&amp;quot;ICON&amp;quot; url=&amp;quot;http://i.ebayimg.com/00/$(KGrHqZ,!kwE8N2+jqE4BPPlqYlJ5g~~_23.JPG&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;seller:representation size=&amp;quot;S&amp;quot; url=&amp;quot;http://i.ebayimg.com/00/$(KGrHqZ,!kwE8N2+jqE4BPPlqYlJ5g~~_18.JPG&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;seller:representation size=&amp;quot;L&amp;quot; url=&amp;quot;http://i.ebayimg.com/00/$(KGrHqZ,!kwE8N2+jqE4BPPlqYlJ5g~~_1.JPG&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;seller:representation size=&amp;quot;M&amp;quot; url=&amp;quot;http://i.ebayimg.com/00/$(KGrHqZ,!kwE8N2+jqE4BPPlqYlJ5g~~_24.JPG&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;seller:representation size=&amp;quot;XL&amp;quot; url=&amp;quot;http://i.ebayimg.com/00/$(KGrHqZ,!kwE8N2+jqE4BPPlqYlJ5g~~_27.JPG&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/seller:logo-image&amp;gt;&lt;br /&gt;
&amp;lt;seller:contact-languages&amp;gt;&lt;br /&gt;
&amp;lt;seller:language&amp;gt;de&amp;lt;/seller:language&amp;gt;&lt;br /&gt;
&amp;lt;seller:language&amp;gt;en&amp;lt;/seller:language&amp;gt;&lt;br /&gt;
&amp;lt;seller:language&amp;gt;it&amp;lt;/seller:language&amp;gt;&lt;br /&gt;
&amp;lt;seller:language&amp;gt;pl&amp;lt;/seller:language&amp;gt;&lt;br /&gt;
&amp;lt;seller:language&amp;gt;tr&amp;lt;/seller:language&amp;gt;&lt;br /&gt;
&amp;lt;seller:language&amp;gt;ru&amp;lt;/seller:language&amp;gt;&lt;br /&gt;
&amp;lt;/seller:contact-languages&amp;gt;&lt;br /&gt;
&amp;lt;/seller:seller&amp;gt;&lt;br /&gt;
&amp;lt;/ad:ad&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>85.216.68.159</name></author>
	</entry>
</feed>