Dateien per eMail - Probleme

CoRe

Mitglied
Hi Leute,

ich habe mir ein Script geschrieben, dass Formulardaten und eine Datei, die der User auswählt, per eMail an mich versendet.

Aber es funktioniert nicht! Die eMail kommt zwar an sieht aber so aus:





From: CopyTreffpunkt <info@copyshopping.de>
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="========1234567"

--========1234567
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit


Online-Auftrag von hr test!

Herr/Frau hr test hat Online eine Anfrage/Bestellung in Bearbeitung gegeben.

Folgende Daten wurden angeben:

Auflage: 10Stk.

Seitenanzahl S/W Kopien:
Größe DIN A4
Seitenanzahl Farbkopien:
Größe DIN

Papierfarbe:
Papiergrammatur:

Endverarbeitung: keine

Sonstiges:
test


--========1234567
Content-Type: application/msword; name=Fragebogen zum LLP.doc
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="Fragebogen zum LLP.doc"

0M8R4KGxGuEAAAAAAAAAAAAAAAAAAAAAPgADAP7/CQAGAAAAAAAAAAAAAAABAAAAKwAAAAAAAAAA
EAAALQAAAAEAAAD+////AAAAACoAAAD/////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////s
pcEAOSAJBAAA8BK/AAAAAAAAEAAAAAAABAAAPw0AAA4AYmpiav3P/c8AAAAAAAAAAAAAAAAAAAAA
AAAHBBYALhoAAJ+lAACfpQAAPwkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//w8AAAAA
AAAAAAD//w8AAAAAAAAAAAD//w8AAAAAAAAAAAAAAAAAAAAAAGwAAAAAAGIBAAAAAAAAYgEAAGIB
...
usw. lauter so kryptisches Zeug
...


Also es ist kein Anhang in Form einer Datei, sondern nur die Datei anscheinend direkt in die Mail eingebaut.

Der Code der Html-Datei schaut so aus(Auszug):

...
<FORM ACTION="../auftrag.php" enctype="multipart/form-data" METHOD="post" target="_blank">
...
<input name="file" type="file">

<input type="submit" name="senden" value="senden" style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; FONT-WEIGHT: bold; FONT-SIZE: 10pt; BORDER-LEFT: medium none; COLOR: #716f6e; BORDER-BOTTOM: medium none; FONT-FAMILY: Arial; BACKGROUND-COLOR: #313131" title="Abschicken der eMail an den CopyTreffpunkt">

</FORM>
...


Der Code der php-Datei schaut so aus:

PHP:
<?

echo "<html>";
echo "<head>";
echo "<title>www.copyshopping.de :: CopytreffPunkt Nürnberg</title>";
echo "</head>";

echo "<body bgcolor=#525252 text=white link=white alink=white vlink=white>";

// ----------- E - M A I L      V E R S C H I C K E N -------------

// Mailkopf und Mailtext
$head = "Online-Auftrag von ".$name."!\n\n";
$head = stripslashes($head);

$text = "Herr/Frau ".$name." hat Online eine Anfrage/Bestellung in Bearbeitung gegeben.\n\nFolgende Daten wurden angeben:\n\n";

$daten="Auflage: ".$auflage."\n\nSeitenanzahl S/W Kopien: ".$swnum."\nGröße DIN ".$swdin."\nSeitenanzahl Farbkopien: ".$fnum."\nGröße DIN ".$fdin."\n\nPapierfarbe: ".$farbe."\nPapiergrammatur: ".$grammatur."\n\nEndverarbeitung: ".$endverarb."\n\n";

$sonstiges = "Sonstiges:\n".$sonstiges."\n\n";

$header = "From: CopyTreffpunkt <info@copyshopping.de>\nMIME-Version: 1.0\n Content-Type: multipart/mixed; boundary=\"========1234567\"";

$message = stripslashes($head.$text.$daten.$sonstiges);

$fd = fopen($file, "r");
$anhang = chunk_split(base64_encode(fread( $fd, filesize($file))));
fclose($fd);
$message = "--========1234567\nContent-Type: text/plain; charset=\"us-ascii\"\n Content-Transfer-Encoding: 7bit\n\n\n".$message."\n--========1234567\n Content-Type: $file_type; name=$file_name\nContent-Transfer-Encoding: base64\nContent-Disposition: attachment; filename=\"$file_name\"\n\n".$anhang;

// Mail an CopyTreffpunkt senden
$result = mail("Copytreffpunkt@myway.de", $head, $message, $header);

if(!$result) {	
	echo "Fehler beim Versenden der Daten per Email an CopyTreffpunkt!<br>"; 
}
else
{
	echo "Anfrage/Bestellung erfolgreich versendet!\n\nInformieren Sie sich bitte per Telefon über den aktuellen Status des Auftrages.<br>";
}
?>
<br><div align="center"><a href="#" onclick="self.close()">Fenster schließen</a></div>
<?
echo "</body>";
echo "</html>";
 ?>

Ich bitte um Hilfe, dieses Verdammte Script bringt mich noch auf die Palme... grrr...

BIIIIGG THX schon mal im vorraus.

cu

CoRe
 
ich sitze jetzt hier schon einige Minuten, und Grübele, wo der Fehler sein könnte .... find aber nix :(

so wie ich sehe hast Du ja eh alles so wie hier gemacht. Frag doch mal nox, was er damals für ein Problem hatte ... vielleicht isses ja das gleiche ;)


Dunsti
 
Ja, genau das Ding von flohhh hatte ich auch zurate gezogen.

*schnief*

Könnte es vielleicht irgendein serverseitiges Problem sein?
Muss ich am Server u.U. noch was einstellen?
 
mmh, öööhm, eigentlich ned. also normalerweise sollte das einwandfrei funken :)

Lässt du das ding unter Win32 oder Unix / Linux laufen ?
 
Das ist ein Unix Server...

Woran könnte es denn theoretisch liegen?
Also ich meine damit, was für Faktoren gibt es denn alles?

Vielleicht habe ich irgendeinen Faktor einfach übersehen...
 
also für mich sieht es so aus, als wenn Dein Email-Prog einfach nur den Quelltext der mail anzeigt.

Probier mal folgendes: schick Dir über ein ganz normales Email-Prog eine mail mit Anhang, und schau Dir dort mal den Quelltext an. Dann probier, diesen "nachzubauen" im Script.


Dunsti
 
Also...

Ich habe inzwischen herausgeunden woran es liegt.
Ich weiss aber nur noch nicht, wie ich das von der programmierung her löse.

Ursachen: Es gibt zwei Dinge die ein Problem waren.

1. Im Header muss zwischen
multipart/mixed; und
boundary
ein Leerzeichen sein, sonst gehts nicht.

...
MIME-Version: 1.0
Content-Type: multipart/mixed;
boundary="----=_NextPart_000_005F_01C25B31.DACD2DC0"
...

2. Es dürfen im eMail-Quelltext keine Leerzeilen zwischen
dem Teil:

Date: Fri, 13 Sep 2002 15:54:10 +0200
From: httpd <httpd@ns1.logo-service.de>
Message-Id: <200209131354.PAA13247@ns1.logo-service.de>
To: info@coredesignstudios.de
Subject: Online-Auftrag von Test 03!
X-UIDL: NG)"!:n\"!WL#!!(?!"!

und dem Teil sein

MIME-Version: 1.0
Content-Type: multipart/mixed;
boundary="----=_NextPart_000_005F_01C25B31.DACD2DC0"


So ein Quelltext(Auszug) einer eMail schaut bei mir so aus:

PHP:
Return-Path: <httpd@ns1.logo-service.de>
Received: from ns1.logo-service.de ([81.2.177.244])
	by p15089597.pureserver.de (8.11.3/8.11.3/SuSE Linux 8.11.1-0.5) with ESMTP id g8DDkEZ25375
	for <info@coredesignstudios.de>; Fri, 13 Sep 2002 15:46:14 +0200
Received: (from httpd@localhost)
	by ns1.logo-service.de (8.9.3/8.9.3) id PAA12966;
	Fri, 13 Sep 2002 15:37:24 +0200
Date: Fri, 13 Sep 2002 15:37:24 +0200
From: httpd <httpd@ns1.logo-service.de>
Message-Id: <200209131337.PAA12966@ns1.logo-service.de>
To: Copytreffpunkt@myway.de
Subject: Online-Auftrag von Test 03!
X-UIDL: NG)"!:n\"!WL#!!(?!"!


From: "CopyTreffpunkt" <info@copyshopping.de>
MIME-Version: 1.0
Content-Type: multipart/mixed;
 boundary="----=_NextPart_000_005F_01C25B31.DACD2DC0"

------=_NextPart_000_005F_01C25B31.DACD2DC0
Content-Type: text/plain;
 charset="iso-8859-1"
 Content-Transfer-Encoding: 7bit

...


Und da liegt mein Problem,
ich weiss nicht, wie ich das PHP-Script programmieren muss, dass zwischen
...
X-UIDL: NG)"!:n\"!WL#!!(?!"!
und
From: "CopyTreffpunkt" <info@copyshopping.de>
MIME-Version: 1.0
...


Das Problem ist nämlich, dass der obere Teil (X-UIDL) vom Server erstellt wird und der untere Teil von mir erstellt wird und angehängt wird.

Ich hoffe, dass mir jemand helfen kann.

mfg

CoRe
 
Zurück