habe da ein dickes Problem.
Und zwar möchte ich mehrere Dateien als Anhänge in einer E-Mail verschicken. Nur kommt zwar die E-Mail mit dem Text und Btreff korrekt an, es befindet sich allerdings nur eine Datei im Anhang und die ist auch nicht mal komplett (nur ein paar byte). Es müssten eigentlich sechs Dateien sein, vier Grafiken und zwei txt-Dateien.
Hier mal der zusammen bau der Header-Zeilen:
Datei: tpl/email_headers/obj_notification.tpl
- Code: Select all
$Trenner = md5(uniqid(time()));
$header .= "Content-Type: multipart/mixed; boundary=$Trenner";
$header .= "\n";
$header = "Date: " . date("r",time());
$header .= "\n";
$header .= "MIME-Version: 1.0";
$header .= "\n";
$header .= "Content-type: text/html; charset=iso-8859-1";
$header .= "\n";
$header .= "From: Administrator <admin@maier-immobilien.de>";
$header .= "\n";
$header .= "To: [receiver]";
$header .= "\n";
$header .= "Reply-To: Kai Kordel <webmaster@maier-immobilien.de>";
$header .= "\n";
$header .= "Subject: [subject]";
if ($admin == "1")
{
$Header .= "--$Trenner";
$header .= "Content-Transfer-Encoding: 8bit";
$header .= "\n";
$header .= "Content-Type: text/plain; name=objekt_".$object_id.".txt";
$header .= "\n";
$header .= "Content-Transfer-Encoding: base64";
$header .= "\n";
$header .= "Content-Disposition: attachment; filename=objekt_".$object_id.".txt";
$header .= "\n\n";
$Dateiinhalt .= fread(fopen("file_tmp/objekt_".$object_id.".txt", "rb"), filesize("file_tmp/objekt_".$object_id.".txt"));
$header .= chunk_split(base64_encode($Dateiinhalt));
$header .= "--$Trenner";
$header .= "Content-Transfer-Encoding: 8bit";
$header .= "\n";
$header .= "Content-Type: text/plain; name=kunde_".$new_offerer_id.".txt";
$header .= "\n";
$header .= "Content-Transfer-Encoding: base64";
$header .= "\n";
$header .= "Content-Disposition: attachment; filename=kunde_".$new_offerer_id.".txt";
$header .= "\n\n";
$Dateiinhalt .= fread(fopen("file_tmp/kunde_".$new_offerer_id.".txt", "rb"), filesize("file_tmp/kunde_".$new_offerer_id.".txt"));
$header .= chunk_split(base64_encode($Dateiinhalt));
$header .= "--$Trenner";
for ($x=1;$x<=4;$x++)
{
$array_pointer = "obj_image_";
$array_pointer .= "".$x."";
if ($_FILES[$array_pointer]['error'] == "0")
{
#move_uploaded_file($_FILES[$array_pointer]['tmp_name'],"file_tmp/".$_FILES[$array_pointer]['name']."");
#chmod("file_tmp/".$_FILES[$array_pointer]['name']."",0777);
$header .= "Content-Transfer-Encoding: 8bit";
$header .= "\n";
$header .= "Content-Type: ".$_FILES[$array_pointer]['type']."; name=".$_FILES[$array_pointer]['name']."";
$header .= "\n";
$header .= "Content-Transfer-Encoding: base64";
$header .= "\n";
$header .= "Content-Disposition: attachment; filename=".$_FILES[$array_pointer]['name']."";
$header .= "\n\n";
$Dateiinhalt .= fread(fopen("images/objects_images/".$obj_img_name."", "rb"), filesize("images/objects_images/".$obj_img_name.""));
$header .= chunk_split(base64_encode($Dateiinhalt));
$header .= "--$Trenner";
}
}
}
Und hier die Zeilen die die E-Mail bauen:
- Code: Select all
GLOBAL $new_pw;
GLOBAL $img_error;
GLOBAL $new_offerer_id;
#GLOBAL $object_id;
$admin = "1";
$email_vorlage = fread(fopen("tpl/email_vorlagen/admin_obj_notification.tpl",r),filesize("tpl/email_vorlagen/admin_obj_notification.tpl"));
$email_vorlage = str_replace("[date]",date("d.m.Y",time()),$email_vorlage);
$email_vorlage = str_replace("[time]",date("g:i",time()),$email_vorlage);
for ($x=1;$x<=4;$x++)
{
if ($img_error[$x]['error_code'] == "0") { $email_vorlage = str_replace("[img_".$x."]","<font style=\"color:#FF0000;\">Bild Nr. ".$x." ist mit einer Dateigröße von number_format(bcdiv($img_error[$x]['file_size'],1024,2),'2',',','.'); KB größer als die erlaubten ".$config['max_img_file_size']."".$img_error[$x]['max_img_file_size_unit'].".<br>Dieses Bild wurde daher nicht in das System übernommen.</font>",$email_vorlage); } ##Datei zu groß
if ($img_error[$x]['error_code'] == "1") { $email_vorlage = str_replace("[img_".$x."]","<font style=\"color:#FF0000;\">Bild Nr. ".$x." liegt mit den Ausmaßen von ".$img_error[$x]['img_width']."x".$img_error[$x]['img_height']."dpi nicht in dem Verhältnis von 800x600dpi.<br>Dieses Bild wurde daher nicht in das System übernommen.</font>",$email_vorlage); } ##Ausmaße zu groß
if ($img_error[$x]['error_code'] == "2") { $email_vorlage = str_replace("[img_".$x."]","<font style=\"color:#FF0000;\">Bild Nr. ".$x." hat das Falche Dateiformat.<br>Erlaubt ist der MIME-Type <b>image/pjpeg</b>. Das Bild hat den MIME-Typ <b>".$img_error[$x]['mime_type']."</b>.<br>Dieses Bild wurde daher nicht in das System übernommen.</font>",$email_vorlage); } ##Falches Dateiformat
if ($img_error[$x]['error_code'] == "3") { $email_vorlage = str_replace("[img_".$x."]","<font style=\"color:#00FF00;\">Bild Nr. ".$x." erfolgreich in das System übernommen.</font>",$email_vorlage); } ##Everthing OK; No Error
}
$obj_cat_sql = "SELECT * FROM immo_categories WHERE id = '".$_POST['obj_category']."'";
$obj_cat_result = mysql_query($obj_cat_sql);
$obj_cat = mysql_fetch_array($obj_cat_result);
$country_sql = "SELECT * FROM immo_countries WHERE id = '".$_POST['obj_country']."'";
$country_result = mysql_query($country_sql);
$country_obj = mysql_fetch_array($country_result);
$obj_file = fopen("file_tmp/objekt_".$object_id.".txt",'wb');
$obj_content = "Objekt-Datensatz-ID: ".$object_id."";
$obj_content .= "\n\r";
$obj_content .= "Objekt-Kategorie: ".$obj_cat['category']."";
$obj_content .= "\n\r";
$obj_content .= "Objekt-Art: ".$_POST['obj_type']."";
$obj_content .= "\n\r";
$obj_content .= "Zimmer/Räume: ".$_POST['obj_rooms']."";
$obj_content .= "\n\r";
$obj_content .= "Nutzfläsche: ".$_POST['obj_livingarea']."";
$obj_content .= "\n\r";
$obj_content .= "Baujahr: ".$_POST['obj_yoc']."";
$obj_content .= "\n\r";
$obj_content .= "Grundstückfläche: ".$_POST['obj_plot']."";
$obj_content .= "\n\r";
$obj_content .= "Garagen: ".$_POST['obj_garages']."";
$obj_content .= "\n\r";
$obj_content .= "Stellplätze: ".$_POST['obj_campsite']."";
$obj_content .= "\n\r";
$obj_content .= "Preis: ".$_POST['obj_price']."";
$obj_content .= "\n\r";
if ($_POST['obj_price_type'] == "0")
{
$obj_content .= "Angebotstyp: Verkauf";
}
if ($_POST['obj_price_type'] == "1")
{
$obj_content .= "Angebotstyp: Vermietung (Gewerblich)";
}
if ($_POST['obj_price_type'] == "2")
{
$obj_content .= "Angebotstyp: Vermietung (Privat)";
}
$obj_content .= "\n\r";
$obj_content .= "Straße: ".$_POST['obj_street']." ".$_POST['obj_housenumber']."";
$obj_content .= "\n\r";
$obj_content .= "Ort/Stadt: ".$_POST['obj_plz']." ".$_POST['obj_town']."";
$obj_content .= "\n\r";
$obj_content .= "Land: ".$country_obj['country_deu']."";
$obj_content .= "\n\r";
$obj_content .= "Beschreibung: ".$_POST['obj_description']."";
fwrite($obj_file,$obj_content);
fclose($obj_file);
chmod("file_tmp/objekt_".$object_id.".txt",0777);
$country_sql = "SELECT * FROM immo_countries WHERE id = '".$_POST['pd_country']."'";
$country_result = mysql_query($country_sql);
$country_cli = mysql_fetch_array($country_result);
$client_file = fopen("file_tmp/kunde_".$new_offerer_id.".txt",'wb');
if (isset($_POST['schon_kunde']) && ($_POST['schon_kunde'] == "0"))
{
$client_content = "Objekt-Datensatz-ID: ".$new_offerer_id."";
$client_content .= "\n\r";
$client_content .= "Name: ".$_POST['pd_firstname']." ".$_POST['pd_lastname']."";
$client_content .= "\n\r";
$client_content .= "Firma: ".$_POST['obj_company']."";
$client_content .= "\n\r";
$client_content .= "Abteilung: ".$_POST['pd_comp_dept']."";
$client_content .= "\n\r";
$client_content .= "Straße: ".$_POST['pd_street']." ".$_POST['pd_housenumber']."";
$client_content .= "\n\r";
$client_content .= "Ort/Stadt: ".$_POST['pd_plz']." ".$_POST['pd_town']."";
$client_content .= "\n\r";
$client_content .= "Land: ".$country_cli['country_deu']."";
$client_content .= "\n\r";
$client_content .= "Telefon: ".$_POST['pd_phone']."";
$client_content .= "\n\r";
$client_content .= "Telefax: ".$_POST['pd_fax']."";
$client_content .= "\n\r";
$client_content .= "Mobil: ".$_POST['pd_mobil']."";
$client_content .= "\n\r";
$client_content .= "E-Mail: ".$_POST['pd_mail']."";
}
elseif (isset($_POST['schon_kunde']) && ($_POST['schon_kunde'] == "1"))
{
$client_content = "Das neue Objekt wurde einem bereits bestehenden Kunden zugeordnet, zu ersehen im Verwaltungsbereich der Seite.";
}
fwrite($client_file,$client_content);
fclose($client_file);
chmod("file_tmp/kunde_".$new_offerer_id.".txt",0777);
include ("tpl/email_headers/obj_notification.tpl"); ##E-Mail-Header bauen
$header = str_replace("[subject]","Neues Objekt",$header);
$header = str_replace("[receiver]","Empfänger-E-Mail-Adresse",$header);
mail('Empfänger-E-Mail-Adresse', 'Neues Objekt', $email_vorlage, $header);
Die Dateien exitieren mit 1000%er Sicherheit und sind auch vom Inhallt her komplett.
Ich bin total ratlos.
Bitte helft mir
Kai aka Knight1