Hallo Jens,
irgendwie verstehe ich die Mail()-Funktion von PHP im Zusammenhang mit Anhängen nicht...
Die mail()-Funktion ist eine "rohe" Funktion, Du musst also die ganze Sache mit Mime-Codierung und alles andere selbst erledigen. Das ist fehleranfällig und sehr kompliziert. Ich habe Dir in </archiv/2002/10/27074/#m147586> die Klasse Mail_Mime empfohlen. Du hast gesagt, Du kommst mit der Doku nicht zurecht. Dabei ist die Klasse 1000000x einfacher, als der rohe Mime-Code.
Ganz am Ende der Doku stand ein Beispiel (ich hab' das jetzt mal rauskopiert) Die Dateien Mail.php und Mail/mime.php findest Du im pear-Unterverzeichnis Deiner PHP-Installation (wenn Du unter Windows arbeitest, musst Du Dir das ZIP-Paket holen, aber nachträglich nur die PEAR-Dateien da rausextrahieren geht auch)
------------------------------------------------------------------
include('Mail.php');
include('Mail/mime.php');
$text = 'Text version of email';
$html = '<html><body>HTML version of email</body></html>';
$file = '/home/richard/example.php';
$crlf = "\r\n";
$hdrs = array(
'From' => 'you@yourdomain.com',
'Subject' => 'Test mime message'
);
$mime = new Mail_mime($crlf);
$mime->setTXTBody($text);
$mime->setHTMLBody($html);
$mime->addAttachment($file, 'text/plain');
$body = $mime->get();
$hdrs = $mime->headers($hdrs);
$mail =& Mail::factory('mail');
$mail->send('postmaster@localhost', $hdrs, $body);
------------------------------------------------------------------
Das gehen wir jetzt mal Schritt für Schritt durch:
include('Mail.php');
include('Mail/mime.php');
Das sagt nur, dass die Dateien eingebunden werden sollen.
$text = 'Text version of email';
Hier definierst Du den Textteil der Email.
$html = '<html><body>HTML version of email</body></html>';
Hier definierst Du den HTML-Teil der Email.
$file = '/home/richard/example.php';
Hier definierst den Dateinamen oder den Dateiinhalt. (ist egal)
$crlf = "\r\n";
Hier definierst Du das Zeilenumbruchzeichen - lass es so.
$hdrs = array(
'From' => 'you@yourdomain.com',
'Subject' => 'Test mime message'
);
Hier definierst Du die Header-Felder der Email.
$mime = new Mail_mime($crlf);
Hiermit instatierst Du ein neues Objekt der Klasse Mail_mime.
$mime->setTXTBody($text);
Hiermit legst Du den vorher definierten Text-Teil der Mail fest.
$mime->setHTMLBody($html);
Hiermit legst Du den vorher definierten HTML-Teil der Mail fest.
$mime->addAttachment($file, 'text/plain');
Hiermit fügst Du ein Attachment des Typs text/plain hinzu. Du kannst diese Funktion mehrmals für alle Deine Attachments aufrufen.
$body = $mime->get();
Hiermit holst Du Dir den kodierten Message-Body.
$hdrs = $mime->headers($hdrs);
Hiermit holst Du Dir die kodierten Message-Headers.
$mail =& Mail::factory('mail');
Hiermit erstellst Du eine Mail-Klasse, die selbst die Funktion mail benutzern wird.
$mail->send('postmaster@localhost', $hdrs, $body);
Hiermit schickst Du die Email an postmaster@localhost.
Das ist doch viel einfacher als Dein Code, also womit hattest Du da Dein Problem?
Grüße,
Christian