PHP mail() mit CSV-Anhang

odigo

Member of Honour
Hallo,

ich versuche verzweifelt eine Mail via PHP mit einer CSV im Anhang zu schicken. Es ging auch schon mal, jetzt nicht mehr. Ich find den Fehler nicht.

PHP:
$filecontent = "123;234;";

$receiver = "test@test.de";
$subject = "betreff";
$mailcontent = "someconten";

$filenameMail = "sms.csv";

$header = "From: test@test.de";

$seperator = md5(time());
$header .= "\n";
$header .= "MIME-Version: 1.0";
$header .= "\n";
$header .= "Content-Type: multipart/mixed; boundary=\"".$seperator."\"";
      
$content = "--".$seperator;
$content .= "\n";
$content .= "Content-Transfer-Encoding: 7bit";
$content .= "\n\n";
$content .= "This is a multi-part message in MIME format";
$content .= "\n";
$content .= "--".$seperator;
$content .= "\n";
$content .= "Content-Type: text/plain";
$content .= "\n";
$content .= "Content-Transfer-Encoding: 8bit";
$content .= "\n\n";
$content .= utf8_decode($mailcontent);
$content .= "\n";
$content .= "--".$seperator;
$content .= "\n";
$content .= "Content-Type: text/csv; name=\"".$filenameMail."\"";
$content .= "\n";
$content .= "Content-Transfer-Encoding: base64";
$content .= "\n";
$content .= "Content-Disposition: attachment; filename=\"".$filenameMail."\"";
$content .= "\n\n";
$content .= chunk_split(base64_encode($filecontent));
$content .= "\n\n";
$content .= "--".$seperator."--";

mail($receiver, $subject, $content, $header);
Jemand eine Idee?

Edit:
Achja, die Mail an sich geht raus, nur halt ohne Nachrichtentext und ohne Anhang
 
Zuletzt bearbeitet:
F

Fluffy

Guest
Hi!
Auf den 1. flüchtigen Blick sieht alles gut aus.
Was hat sich denn geändert zwischen, es funktionierte mal und nun nicht mehr.
Also wenn es mal funktioniert hat und nun nicht mehr funktioniert, wird es IMHO nicht am Code liegen, da dieser, deiner Fragestellung zufolge, nicht angefasst wurde.
Das die Mail rausgeschickt wird aber ohne Anhang und Inhalt deutet für
mich eher darauf hin, das ausgefiltert wird, oder das die Daten die an diesen Code gereicht werden auf einmal eine andere repräsentation haben.

Wurde denn schon einmal versucht, hart-kodierte Werte zu verschicken?

Gruß

Fluffy

Edit:
Korrektur es ist was komisch:
Die definierte Grenze enthält 2 "-Zeichen , aber in der Verwendung sind diese nicht vorhanden, aber das RFC ist diesbezüglich nicht spezifisch RFC1341(MIME) : 7 The Multipart content type
 
Zuletzt bearbeitet von einem Moderator:

odigo

Member of Honour
Danke Fluffy für deine Hilfe. Ich hab das ganze jetzt auf PHPMailer umgestellt. Sehr viel stressfreier und funktioniert bestens. Kann ich jedem nur empfehlen.
Bin jetzt nicht so der PHP-Spezialist, aber man darf sich schon wundern (ich tus zumindest), warum es im PHP selbst anscheinend keine einfache Möglichkeit gibt solche Mails zu verschicken und man was externes wie PHPMailer braucht.
 
Oben