Tom: einfache Mime-Mail-Funktion (hoffentlich); 2. Test

Beitrag lesen

Hello, wird wohl doch ne längere Sache... :-)

$boundary = strtoupper(md5(uniqid(time())));

$header = "From: $from\n"; //kommt von Formular
$header .= "MIME-Version: 1.0";
$header .= "\nContent-Type: multipart/mixed;\nboundary="$boundary"";

So korrekt mit der Leerzeile??

Hier war sie jetzt nicht notwendig, de es die Definition der Boundary ist. Dürfte aber auch nicht schädlich sein.

Jetzt verschickt der die Mail mit Attachment, aber als blabla.dat???

Die Foreach-Schleife:

Wo muss die Straten, wo enden??

hier wird das Attachment vorbereitet.

##Hier Beginn foreach???

Ja.

Erst prüfen, ob $attach überhaupt ein Array ist:

if (is_array($attach))
{
  foreach($attach as $filename)
  {

$fh = @fopen($filename,"r");  ## da war noch ein Fehler (file->filename)
    if ($fh)
    {
      $file_content = fread($fh,filesize($filename));
      fclose($fh);
      $file_content = chunk_split(base64_encode($file_content),76,"\n");
      $header .= "\n\n--$boundary";  ## hier die Leerzeilen
      $header .= "\nContent-Type: application/octetstream;"."name="".basename($filename).""";
      $header .= "\nContent-Transfer-Encoding: base64";
      $header .= "\nContent-Disposition: attachment;"."filename="".basename($filename).""";
      $header .= "\n\n$file_content\n";
    }
    else
    {
      $err[] = "Attachment File ".$filename." ließ sich nicht öffnen";
    }

} ## end foreach()
} ## endif isarray
else
{
  $err[] = "Attachment fehlt.";
}

$header .= "\n\n--$boundary--";

Mach mitte nochmal eine saubere Funktion mit den Übergabe-Arrays draus und wenn sie funktioniert, dann poste sie nochmal.

Viel Erfolg

Tom