PHP mail Funktion

andreano

Mitglied
Hallo Freunde,

ich habe gestern die mail Funktion in meinem Projekt anwenden müssen und dabei ist mir eine Sache aufgefallen die mir nicht so ganz "klar" ist.

http://de3.php.net/manual/de/function.mail.php

PHP:
<?php
// mehrere Empfänger
$empfaenger  = 'max@example.com' . ', '; // beachten Sie das Komma
$empfaenger .= 'moritz@example.com';

// Betreff
$betreff = 'Geburtstags-Erinnerungen für August';

// Nachricht
$nachricht = '
<html>
<head>
  <title>Geburtstags-Erinnerungen für August</title>
</head>
<body>
  <p>Hier sind die Geburtstage im August:</p>
  <table>
    <tr>
      <th>Person</th><th>Tag</th><th>Monat</th><th>Jahr</th>
    </tr>
    <tr>
      <td>Julia</td><td>3.</td><td>August</td><td>1970</td>
    </tr>
    <tr>
      <td>Tom</td><td>17.</td><td>August</td><td>1973</td>
    </tr>
  </table>
</body>
</html>
';

// für HTML-E-Mails muss der 'Content-type'-Header gesetzt werden
$header  = 'MIME-Version: 1.0' . "\r\n";
$header .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";

// zusätzliche Header
$header .= 'To: Simone <simone@example.com>, Andreas <andreas@example.com>' . "\r\n";
$header .= 'From: Geburtstags-Erinnerungen <geburtstag@example.com>' . "\r\n";
$header .= 'Cc: geburtstagsarchiv@example.com' . "\r\n";
$header .= 'Bcc: geburtstagscheck@example.com' . "\r\n";

// verschicke die E-Mail
mail($empfaenger, $betreff, $nachricht, $header);
?>


Das was mir unklar ist, wieso muss ich die e-mail gleich zwei mal an die gleiche Person versenden?

Damit meine ich das:
1: Empfänger
für mich eigentlich sinn/nutzlos
PHP:
$empfaenger .= 'moritz@example.com';

2: Empfänger
für mich sinnvoll, weil "To: meine empfänger"
PHP:
$header .= 'To: Simone <simone@example.com>, Andreas <andreas@example.com>' . "\r\n";

Kann mir das einer erklären?



Grus und besten Dank im vorraus Aleks
 
Die mail() function benötigt als ersten Parameter den Empfänger und ist ZWINGEND notwendig.
Das "to" im Header ist nur ein Zusatz, um die Mail evt. an mehrere Personen zu senden, kann aber weg gelassen werden.

Zusatz: Den gesamten "Header"-Bereich brauchst du nicht zwingend (der ist optional) (außer du willst wie in deinem Falle eine HTML-Mail versenden) ;-)

paD
 
to String,
ich ich wollte eine Html E-Mail versenden, das habe ich vergessen zu erwähnen sorry.

Heißt das das ich den Header komplett weglassen kann?

Aleks
 
Um eine simple Text-Mail zu versenden brauchst du keine Header-Infos. Die dienen v. a. dem E-Mail-Programm des Empfängers. Dann weiß es z. B., an wen geantwortet werden soll etc.

Wenn du aber eine HTML-Mail verschicken willst brauchst du den Header um dem Mailprogramm mitzuteilen, dass der Inhalt der Mail als HTML interpretiert werden soll. Wenn du diese Info weglässt, werden die Tags als Klartext dargestellt.

Konkret brauchst du warscheinlich folgende Infos:
Code:
Content-Type: text/html; charset="iso-8859-1"
Content-Transfer-Encoding: 7bit // ob der Wert für dich der richtige ist musst du selbst rausfinden
Genauere Infos findest du hier: http://www.w3.org/TR/1998/NOTE-HTMLThreading-0105.htm
und hier: http://de.wikipedia.org/wiki/Header_(E-Mail)

Viele Grüße,
Frezl
 
Zuletzt bearbeitet:
Zurück