Michael: e-Mail mit Anhang (1blu)

Beitrag lesen

Hi Martin

Der Code hat ja echt einige Fehler.
method="post" und enctype="multipart/form-data" hab ich in meinem Code drinnen, aber vergessen hier in den post zuschreiben.
$lokale_datei wird ja in dem form ausgelesen.

Jetzt hab ich einen neuen Code gefunden, klappt leider immer noch nicht:

function mail_attach($to, $from, $subject, $message, $files = FALSE,$lb="\n") {
// $to Recipient
// $from Sender (like "email@domain.com" or "Name email@domain.com")
// $subject Subject
// $message Content
// $files hash-array of files to attach
// $lb is linebreak characters... some mailers need \r\n, others need \n
$mime_boundary = "<<<:" . md5(uniqid(mt_rand(), 1));
$header = "From: ".$from;
if(is_array($files)) {
$header.= $lb;
$header.= "MIME-Version: 1.0".$lb;
$header.= "Content-Type: multipart/mixed;".$lb;
$header.= " boundary="".$mime_boundary.""".$lb;
$content = "This is a multi-part message in MIME format.".$lb.$lb;
$content.= "--".$mime_boundary.$lb;
$content.= "Content-Type: text/plain; charset="iso-8859-1"".$lb;
$content.= "Content-Transfer-Encoding: 7bit".$lb.$lb;
}
$content.= $message.$lb;
if(is_array($files)) {
$content.= "--".$mime_boundary.$lb;
foreach($files as $filename=>$filelocation) {
if(is_readable($filelocation)) {
$data = chunk_split(base64_encode(implode("", file($filelocation))));
$content.= "Content-Disposition: attachment;".$lb;
$content.= "Content-Type: Application/Octet-Stream;";
$content.= " name="".$filename.""".$lb;
$content.= "Content-Transfer-Encoding: base64".$lb.$lb;
$content.= $data.$lb;
$content.= "--".$mime_boundary.$lb;
}
}
}
if(mail($to, $subject, $content, $header)) {
return TRUE;
}
return FALSE;
}

Mit functions kenn ich mich nicht so aus.
Wie muss ich die Datei angeben. Im Code steht ja "$files hash-array of files to attach"
Was ist ein hash-array und wie erstell ich ihn wenn ich es mit dem form wie in meinen 1. Post mache?

Muss ich die Variablen
$to, $from, $subject .. schon in der Klammer nach dem functionsname bestimmen, oder erst später?

Vielen Dank
Michael