Funktion mail()

Datei-Anhaenge sind nicht ganz so einfach. Dafuer darf der Content-Type z.B. schonmal nicht text/html sein sondern multipart/mixed.
Weiterhin brauchst Du einen Trennstring, die sogenannte Boundary um die einzelnen Parts der Mail voneinander zu trennen. Ein Teil der Mail wird dann den Content-Type text/html haben und Deine eMail sein, ein anderer Teil wird dann z.B. image/jpeg (halt dem Dateiformat entsprechend) und den Anhang enthalten.

mail() ist im Grunde nicht dazu gedacht eMails mit Anhaengen zu verschicken, es ist aber moeglich.
Ich hatte vor einer ganzen Zeit mal eine Funktion gepostet mit der eMails mit Anhang erstellt werden koennen, diese eMails konnten dann einfach mail() uebergeben werden. Da aber meine Klasse grundsaetzlich auch auf diesem Code basiert (grundsaetzlich weil der Code doch noch einige Veraenderungen erfahren hat) koenntest Du auch gleich diese nehmen. Da Du wie Du sagst nicht viel Ahnung hast wird es sowohl bei der Funktion als auch bei der Klasse noch eine ganze Weile dauern bis Du den Code wirklich nachvollziehen kannst. Anhand dessen kannst Du Dir nun sicherlich den Schwierigkeitsgrad darstellen das selbst zu schreiben. Aber falls Du das vorhast, dann empfehle ich Dir einen Blick in die RFCs zu den Themen eMails und MIME.
Ansonsten koenntest Du auch eMails analysieren indem Du sie Dir komplett als Text, also inklusive aller Header und allem, anzeigen laesst.
 
Hi, deine Antwort hat mir schon sehr weiter geholfen.

Ich denke das ich in diesem Fall dann doch bei einer Email ohne Bilder (Anhang) bleiden werde um mir mühselige Arbeit zu sparen, ich bin mir sicher das ich es nicht hinbekommen werde.

Später kann ich mir ja vielleicht mal die RFC`s ansehen wenn es den sein muss.
 
Es ist wirklich einiges an Arbeit bis die Mail erstmal richtig will wenn man sich das selbst schraubt. Als ich an dem Script gearbeitet hab haben mich die Anhaenge fast zur Verzweiflung getrieben. Und auch spaeter als ich die Klasse geschrieben hab sind unvorhergesehen wieder Probleme aufgetaucht. Oft ist es dann nur eine Kleinigkeit, aber eben eine wichtige.
Es gibt da halt einiges zu beachten um Anhaenge an die Mail zu packen, besonders die Boundary ist da ganz schon "tricky".
 
son gohan hat gesagt.:
Also, mein Problem ist immer noch das mein Bild nicht ankommt in der Mail.

Das wäre sehr einfach mit der von mir oben geposteten Klasse ...

Inline Attachments

There is an additional way to add an attachment. If you want to make a HTML-message with Images, you have to make an attachment of the image and then link the <img src="cid:CID" /> tag to it. This is done with a so called CID. For example, you add an image as Inline Attachment with the CID my-photo, you access it within the HTML-mail Part with &ltimg src="cid:my-photo" alt="my photo" />. It's that easy!

Here is the function to add the Inline Attachment in detail:
$mail->AddEmbeddedImage(filename, cid, name));
By using this function with this example's value above, leads into this code:
$mail->AddEmbeddedImage('my-photo.jpg', 'my-photo', 'my-photo.jpg '));

For more Information about HTML-Mails, see the Chapter Using HTML Mail.

Diese Klasse nimmt dir so dermaßen viel Arbeit ab, dass es schon fast langweilig wird ;)

Lies dir dieses Tutorial durch, und du wirst zu deinem gewünschten Ziel kommen.
 
Hallo diggity,

echt vielen Dank für den Hinweis, aber auch Englisch macht mir Probleme.

Ausserdem habe ich noch Verständnisprobleme mit Klassen und Objekten in PHP, daher werde ich damit sicher nicht zurecht kommen.

Schon die erste Zeile mit require("class.phpmailer.php"); lies mir nur Rätsel offen woher die class.phpmailer Datei nun stammen sollte.
 
son gohan hat gesagt.:
Hallo diggity,

echt vielen Dank für den Hinweis, aber auch Englisch macht mir Probleme.

Ausserdem habe ich noch Verständnisprobleme mit Klassen und Objekten in PHP, daher werde ich damit sicher nicht zurecht kommen.

Schon die erste Zeile mit require("class.phpmailer.php"); lies mir nur Rätsel offen woher die class.phpmailer Datei nun stammen sollte.

Es ist alles super erklärt auf der Seite, da brauchts auch keine großen Englischkenntnisse, ist zum Großteil selbsterklärend finde ich.
Die Datei "class.phpmailer.php" musst du natürlich von der Webseite downloaden und auf deinen Webserver laden ... dort hin wo du auch deine anderen Scripte hinspeicherst.
Wenn du nach dem Tutorial arbeitest, musst du auch nicht verstehen was Klassen und Objekte sind/machen.
 
Hi!

Wenn Du WinXP nutzt, dann kannst Du als lokalen "SMTP-Server" auch den SMTP-Dienst von Windows nutzen. Mußt ihn nur zusätzlich installieren, der wird - glaub ich - nicht standardmäßig installiert.
Allerdings ist die Konfig etwas merkwürdig, aber er funktioniert. Ich würde Dir aber raten diesen Dienst nur temporär zu starten, wenn Du ihn benötigst und danach wieder stoppen.

MfG
..::SD::..
 
Zurück