![]() Mailinglisten-Archive |
Am 19.10.2004 13:21 Uhr schrieb "Steffen Kother" unter <steffen.kother at gmx.net>: > Hallo und einen sch�nen Tag an euch, > > das mit den Namen im From und Reply-To der Mail funktioniert. Habe > jetzt aber bzgl. meiner Aufgabenstellung ein Verst�ndnisproblem: > > Die Mail soll einen Anhang bekommen und im Mailtext soll ein Link und > ein bissl Text aufgef�hrt werden. > > Der Text und Link sind nicht das Thema. Mir geht es um den Anhang. Je > nach Anzahl der Anh�nge wird ja der Mailbody gesplittet. Wie muss ich > das mit dem Content-Type und Content-Transfer-Encoding machen? Wie > setze ich die in die Mail ein? auch einfach als Header? > > Vielen Dank f�r Eure Infos dazu, gern auch zum Nachlesen. Schau mal unter http://phpguru.org/static/mime.mail.html nach. da brauchst du den ganzen kram nicht selbst programmieren. alternativ muss folgendes im Body stehen: $message = 'MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=_8acd99179245df15889920fa3e2e5b9a"'; Die Boundary kannst du selbst erstellen ( z.B. $boundary = '_/'.md5(time()).'\_';) multipart/mixed steht f�r gemischte Inhalte, multipart/alternative f�r mehrmals derselbe Inhalt in unterschiedlicher Aufbereitung (text, html und pdf z.B.) Dann kommt im Body die erste Nachricht: $message .= ' This is a multipart message in MIME format '; (Da kann irgendwas stehen, nett ist ein erl�uternder Text f�r clients, die kein multipart verstehen) Dann kommen _zwei_ Zeilenschaltungen (CRLF, also \r\n) und der Trenner angef�hrt von _zwei_ '-', also: $message .= "\r\n\r\n" . '--' . $boundary . "\r\n"; Dann kommt die Codierung des n�chsten Teiles $message .= 'Content-Type: image/gif; charset="iso-8859-1"' . "\r\n". 'Content-Transfer-Encoding: base64' . "\r\n". 'Content-Disposition: inline; filename="' . $dateiname . '"'; Dabei steht inline f�r 'zeige mir das dokument im Body der nachricht an. Alternativ kann auch attachmant gew�hlt werden. Dann wird die Datei eben als anlage eingebunden Dann kommen wieder zwei CRLF $message .= "\r\n\r\n"; Und dann kommt der Inhalt des n�chsten Teiles $message .= base64_encode ( file_get_contents ( $dateiname ) ); Und dann wieder der n�chste Trenner $message .= "\r\n\r\n" . '--' . $boundary . "\r\n"; und die Schritte zwischen den Trennern kannst du beliebig oft wiederholen. Du musst nur die entsprechenden Infos bereitstellen (Content-Type etc) wenn du es noch genauer wissen willst, schau in den RFCs nach (z.B. hier: http://www.ietf.org/rfc/rfc2045.txt ) hth Gr��e Andreas -- wdv Medien & Kommunikation GmbH & Co. OHG Mediendatenverarbeitung Andreas Heigl Siemensstrasse 6 61352 Bad Homburg Germany Telefon +49-(0)6172-670-185 Telefax +49-(0)6172-670-181 www.wdv.de
php::bar PHP Wiki - Listenarchive