ReichMio Geschrieben 23. Dezember 2005 Geschrieben 23. Dezember 2005 Guten Morgen! Ich hab ein kleines Problem. Ich möchte eine Email via PHP versenden in der ein Bild angezeigt wird. Es gibt ja dafür jetzt 2 möglichkeiten. Die eine wäre, ich verschicke die email als Html-email und verlinke darin auf eine bild auf einem webserver. -> will ich aber nicht, da es im outlook dann heißt "Datei wurde aus sicherheitsgründen nicht runtergeladen, Falls sie es dennoch runterladen wollen, klicken sie hier".. (oder so ähnlich) Die 2 möglichkeit ist es, eine email wie im outlook zu schreiben, inder man das bild direkt in die email einfügt (im Outlook über Einfügen->Grafik->Ausdatei). Anscheinend wird dann das bild als anlage mitgespeichert, und dann über die Htmlemail auf diese Anlage zugegriffen. Und genau hier liegt mein problem! Wie kann ich auf diese Anlage zugreifen, bzw wie ich kann ein solche email versenden, in der das bild schon direkt angezeigt wird ? vielleicht kann mir jemand helfen! Danke ! Zitieren
SNOWMAN Geschrieben 23. Dezember 2005 Geschrieben 23. Dezember 2005 Anlage auf englisch ist Attachment ich will in php eine mail mit attachment --> google erster fund: http://www.php-resource.de/forum/showthread/t-11673.html --> google siebter fund (is zwar n skript mit oberfläche aber kannst ja ma die sourcen angucken wie das gehandhabt wird) http://www.php-free.de/Detailed/2328.html Zitieren
ReichMio Geschrieben 23. Dezember 2005 Autor Geschrieben 23. Dezember 2005 Danke ist zwar nett gemeint, aber nicht das was ich suche. Eine Email mit einem anhang kann ich verschicken. dazu hab ich schon ein script gefunden. Mir gehte darum, dass ich ein bild verschicken kann, dass gleich in der email angezeigt wird.. (um den code) wie kann ich auf ein foto das am anhang liegt zugreifen. ohne einen link auf einen webserver via html mit <IMG> zu machen Zitieren
geloescht_JesterDay Geschrieben 23. Dezember 2005 Geschrieben 23. Dezember 2005 Anscheinend wird dann das bild als anlage mitgespeichert, und dann über die Htmlemail auf diese Anlage zugegriffen. Und genau hier liegt mein problem! Wie kann ich auf diese Anlage zugreifen, bzw wie ich kann ein solche email versenden, in der das bild schon direkt angezeigt wird ? du musst einfach das Bild in der Mail mitschicken Natürlich musst du dich dabei an das "eMail Format" halten. Eine Email ist einfach nur Text, nicht mehr und nicht weniger. Ein gewisser Teil am Anfang wird dabei als Header ausgewertet und enthält Steuerungsinfos (Empfänger, Absender etc). Du musst dein Bild also in Text umwandeln (base64-Kodierung) und in den Textkörper, der entsprechend aufgebaut sein muss, einbinden. Du musst also in der Mail mitteilen, wie sie aufgebaut ist und was sie beinhaltet. Bei einer Mail mit Anhang also ungefähr so: Content-Type: multipart Content-Type: Text Hier der Text der Mail Ende Content-Type Text Content-Type: Image Eindeutige Content-ID Content-Anlage: inline Bild als base64 Ende Bild und Mail Den Header musst du in php ja eh selber schreiben, also sowas wie: $Header= "From:$MailFrom<$MailFromAdr>\r\n"; $Header.= "X-Mailer: PHP/" . phpversion(). "\r\n"; [/php] Damit weiss der Empfänger, wer die Mail geschrieben hat (ansonsten steht der Standard des Webservers drin). X-Mailer ist das Mail-Programm (alles mit X- davor ist kein Standard, also irgendwelche Extraangaben. Dazu müssen dann noch folgende angaben: [php] $Header.= "MIME-Version: 1.0\r\n"; $Header.= "Content-Type: multipart/related; boundary=\"".$mime_boundary."\"; type=\"text/plain\"\r\n"; Damit sagst du, dass deine Mail mehrere unterschiedliche Teile enthält. ausserdem legst du einen Begrenzer der einzelnen Teile fest ($mime_boundary). Der Trenner sollte irgendwas eindeutiges, zufälliges sein: $mime_boundary = "" . md5(uniqid(mt_rand(), 1)); [/php] Dann kommt der erste Teil (Text) der Mail: [php] $MailBody = "--".$mime_boundary."\r\n"; $MailBody.= "Content-Type: Text/plain\r\n"; $MailBody.= "Content-Transfer-Encoding: quoted-printable\r\n\r\n"; $MailBody.="Hier steht mein Text"; $MailBody.= "\r\n\r\n"; $MailBody.= "--".$mime_boundary."\r\n"; Mit --$mime_boundary legst du die Grenzen eines Teils fest. \r\n steht für einen Zeilenumbruch. Zeilenumbrüche sind extrem wichtig, da darüber der Aufbau der Mail bzw. der Inhalte gesteuert wird. (\r\n ist die Windows Methode für Zeilenumbrüche (im Skript von mir war es auch unter Novell so), andere Systeme nutzen nur \r oder auch mal nur \n. Am besten machst du dafür eine eigene Varible, dann ist das ändern einfacher Weiss im Moment nicht, ob es da eine automatisierte Version zum ermitteln des Zeilenumbruchs gibt. Als nächstes willst du das Bild an die Mail anhängen, das geht so: $fp = fopen ($ImageLocation, "rb"); $str = fread ($fp, filesize ($ImageLocation)); $data = chunk_split(base64_encode($str)); $content.= "Content-Type: image/gif\r\n"; $content.= "Content-ID: <$CID.$ImgName>\r\n"; $content.= "Content-Transfer-Encoding: base64\r\n"; $content.= "Content-Disposition: inline; filename=\"$ImgName\"\r\n\r\n"; [/php] Hier liest du das Bild ein und wandelst es in Text um (eine EMail darf nur Ascii Zeichen enthalten). Ausserdem braucht jeder anhang eine (am bestern weltweit) eindeutige ID. $CID = md5(uniqid (rand(), 1)); Die ID ist dazu da, um in der Mail auf den Anhang zuzugreifen. Weltweit eindeutig deshalb, weil es mit diesem Verfahren (und das ist auch so gewollt) möglich ist, in einer Mail auf einen Anhang einer anderen Mail zuzugreifen. Alles was man dazu wissen muss, ist die Anhang-ID. Du könntest also theoretisch einen HTML-Newsletter versenden, in dem nur die Begrüßungsmail dein Logo beinhaltet. Alle späteren Mails greifen darauf zu. Das spart natürlich Bandbreite, setzt aber vorraus, dass die Mail auch vorhanden ist Deine Mail musst du dann noch zusammenfügen: [php] $content.= $data; $MailBody.= $content; $MailBody.= "--".$mime_boundary."--\r\n"; Damit hängst du dein Bild an den bildheader und das wiederum an den MailBody. Dann absenden und gut: mail($MailTo, $MailToSubject, $MailBody, $Header); [/php] Wenn du eine HTML Mail versenden willst geht das ähnlich, nur der Content-Type ist eben text/HTML und die Codierung sollte mit angegeben werden (mein Script war auch von einer HTML Mail, hab das hier nur in text/plain geändert). Da wo dein Text steht, kann dann HTML hin und wird entspr. Interpretiert vom Client. Bilder im HTML hängst du genauso als Anhang an, mit eindeutiger ID. Als [b]<img src[/b] für das bild gibst du aber keine URL oder so an, sondern genau diese ID des Anhangs. Weiteres dazu findest du z.B. hier: http://de.wikipedia.org/wiki/E-Mail#Technische_Details oder http://www.heise.de/ct/99/08/152/ Du kannst dir auch die entsprechende RFC durchlesen, da steht das genau, wie die Mail aufgebaut sein muss und wie das mit dem Anhang ist. Hab die Nummer aber nicht mehr im Kopf (wegen dem Anhang) und meine Lesezeichen sind dazu mittlerweile auch schon weg Daraus hab ich aber all das heraus, was ich für mein Skript gebraucht hab. EDIT: in einer anderen Version des Skripts hab ich \r\n durch $EOL ersetzt. Hab leider das falsch hier genommen, würde dir aber empfehlen, das auch so zu ersetzen (steht ja auch oben irgendwo). EDIT2: Ach ja, am Ende steht wieder das --$mail_boundary, nur diesmal noch gefolgt von noch einem --, so wird das Ende der Mail signalisiert. Zitieren
SNOWMAN Geschrieben 23. Dezember 2005 Geschrieben 23. Dezember 2005 also ich muss noch sagen, von sachen mail hab ich jetzt nicht den riesen plan, aber du meintest doch, das outlook beim einfügen eines bildes, das bild als anhang dabei hat und in der mail auf dieses bild verwiesen wird? so kannst du doch das bild dranhängen und drauf verweisen mom, ich mach das jetzt mal ... so, quelltext der mail hatte <IMG src="cid:289132109@23122005-3475"> fürs bild cid... war is dat denn? Content-id O_O na wie auch immer, dieser thread scheint genaus das thema zu behandeln http://www.selfphp.de/forum/archive/index.php/t-7737.html Zitieren
geloescht_JesterDay Geschrieben 23. Dezember 2005 Geschrieben 23. Dezember 2005 so, quelltext der mail hatte <IMG src="cid:289132109@23122005-3475"> fürs bild cid... war is dat denn? Content-id O_O siehe meinen Beitrag Zitieren
ReichMio Geschrieben 23. Dezember 2005 Autor Geschrieben 23. Dezember 2005 Erstmal danke für die Super antwort! nur leider kommt das bild nicht als bild an! :-( Hier steht mein Text Content-Type: image/jpeg Content-ID: <58b1de6b4314db691afc2fc403d3b1fc.image001.jpg> Content-Transfer-Encoding: base64 Content-Disposition: inline; filename=mage001.jpg" /9j/4AAQSkZJRgABAQEBLAEsAAD/2wBDAAQCAwMDAgQDAwMEBAQEBQkGBQUFBQsICAYJDQsNDQ0L DAwOEBQRDg8TDwwMEhgSExUWFxcXDhEZGxkWGhQWFxb/2wBDAQQEBAUFBQoGBgoWDwwPFhYWFhYW FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhb/wAARCAK8AgADASIA AhEBAxEB/8QAHQABAAAHAQEAAAAAAAAAAAAAAAECBAUGBwgDCf/EAGYQAAEDAwEEAwcLDgoFCgYC +t6vqPCP8A89Z9e+/oX32x8YKd/Qvvtj4wV8hO/p/35J+NV6aG dPx/y2V8cr00/C/+Xq+o8Iv0es+vff0L77Y+MFO/Yf32x8YK+QZnT88J8n45XpqVU+4D/p8r45Xp .... +rUolKbbZ32HN5ZZQ0T44R67gjhWn q26NVVY7S+8rkilKVaBX0M9SX/m/Xn+8Tv0DNfPOvoZ6kt/N/vP94nfoGa4vD/mT50RLQ6guP/IH 3/eMb4pPoqppS7FkU3g63/eMb4pPop4Ot/3jG+KT6KqaUuxZFN4Ot/3jG+KT6KeDrf8AeMb4pPoq ppS7FkSR2WWEbjLSG05zhCQBn3KnpSoJP//Z ---- [/PHP] [PHP] $Empfaenger = "ReichMio@gmx.de"; $Betreff = "Weihnachtsgruesse!"; $Trenner = md5(uniqid(time())); $Header = "From: Weihnachtsgruesse<test@test.de>"; $Header .= "\r\n"; $Header .= "MIME-Version: 1.0"; $Header .= "\r\n"; $Header .= "Content-Type: multipart/related; boundary=$Trenner"; $MailBody = "--".$Trenner."\r\n"; $MailBody.= "Content-Type: Text/plain\r\n"; $MailBody.= "Content-Transfer-Encoding: quoted-printable\r\n\r\n"; $MailBody.="Hier steht mein Text"; $MailBody.= "\r\n\r\n"; $CID = md5(uniqid(rand(),1)); $ImgName = "image001.jpg"; $ImageLocation = "image001.jpg"; $fp = fopen ($ImageLocation, "rb"); $str = fread ($fp, filesize ($ImageLocation)); $data = chunk_split(base64_encode($str)); $content.= "Content-Type: image/jpeg\r\n"; $content.= "Content-ID: <$CID.$ImgName>\r\n"; $content.= "Content-Transfer-Encoding: base64\r\n"; $content.= "Content-Disposition: inline; filename=\"$ImgName\"\r\n\r\n"; $content.= $data; $MailBody.= $content; $MailBody.= "--".$mime_boundary."--\r\n"; mail($Empfaenger, $Betreff, $MailBody, $Header); das komische an der ganze sache ist auch noch, dass er mir im header bei $content.= "Content-Transfer-Encoding: base64\r\n"; $content.= "Content-Disposition: inline; filename=\"$ImgName\"\r\n\r\n"; [/PHP] nicht image001.jpg sondern nur mage001.jpg hinschreibt.. (siehe oben) was mache ich falsch ? Zitieren
geloescht_JesterDay Geschrieben 23. Dezember 2005 Geschrieben 23. Dezember 2005 Wie sieht denn der Mail-Quelltext aus? Kannst du den mal posten? Also am Ende kein mail(...) sondern den $header + $MailBody einfach ausgeben lassen. EDIT: Auf was für einem System läuft das ganze denn? Und kommt überhaupt was an, und wenn ja was? Zitieren
ReichMio Geschrieben 23. Dezember 2005 Autor Geschrieben 23. Dezember 2005 --eb65e1e765cfe4083ae4ae5abb7909b5 Content-Type: Text/plain Content-Transfer-Encoding: quoted-printable Hier mein Text Content-Type: image/jpeg Content-ID: <4dc96f82761ba5483dfdf5ca9a55921d.image001.jpg> Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="image001.jpg" /9j/4AAQSkZJRgABAQEBLAEsAAD/2wBDAAQCAwMDAgQDAwMEBAQEBQkGBQUFBQsICAYJDQsNDQ0L DAwOEBQRDg8TDwwMEhgSExUWFxcXDhEZGxkWGhQWFxb/2wBDAQQEBAUFBQoGBgoWDwwPFhYWFhYW FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhb/wAARCAK8AgADASIA AhEBAxEB/8QAHQABAAAHAQEAAAAAAAAAAAAAAAECBAUGBwgDCf/EAGYQAAEDAwEEAwcLDgoFCgYC AwECAwQABREGBxIhMRNBUQgUFSJhcdEJMjdTgZGSk5WysxgjNUJSVFVWdHWUobHSFhczOFdic3bB 0yRDcoLhNDZER2SDoqO08UVjZYTC8CVGZial/8QAGwEBAAIDAQEAAAAAAAAAAAAAAAEDAgQFBgf/ xABBEQACAQIDAgcOBgEFAQEBAAAAAQIDEQQhMRJBBRNRcZGhsQYUFSIzNFJTYYHB0eHwFjI1QnKS YyMkQ4LxYiXi/9oADAMBAAIRAxEAPwDv6pJDzTDRdfdQ2hPNS1AAe6anrRPqjyQvuVruhXFKpsQK HUR06edXYei61WNJO12l0mM5bEXLkN1C62s8rlE+PT6amFztv4Qi/HJ9NfHdESOB4rSB5q9UNISO Ax5ia9Iu5epvqLoNB8Ix9E+wfhK3ff8AG+OT6aj4Rt/39G+NT6a+PoGORV8I1ON/qcX8M1ku5afr Or6keEV6J9f/AAjb/v6N8an008I2/wC/o3xqfTXyBy77a58M1MFvD/XOfDNT+Fpet6vqPCK9E+vn hCB9+x/jU+mnhCB9+x/jU+mvkJ0j+P5d34w0D0gf9Jd+MNPwrL1vV9SPCP8A8n187/g/+KT6KeDrf94xvik+iqmlLsWRTeDrf94xvik+ing63/eMb4pPoqppS7FkU3g63/eMb4pPop4Ot/3j ... G+KT6KqaUuxZFN4Ot/3jG+KT6KeDrf8AeMb4pPoqppS7FkU3g63/AHjG+KT6KeDrf94xvik+iqml LsWRTeDrf94xvik+ing63/eMb4pPoqppS7FkU3g63/eMb4pPop4Ot/3jG+KT6KqaUuxZFN4Ot/3j G+KT6KeDrf8AeMb4pPoqppS7FkU3g63/AHjG+KT6KeDrf94xvik+iqmlLsWRTeDrf94xvik+ing6 3/eMb4pPoqppS7FkU3g63/eMb4pPop4Ot/3jG+KT6KqaUuxZFN4Ot/3jG+KT6KeDrf8AeMb4pPoq ppS7FkSR2WWEbjLSG05zhCQBn3KnpSoJP//Z --eb65e1e765cfe4083ae4ae5abb7909b5-- From: Weihnachtsgruesse MIME-Version: 1.0 Content-Type: multipart/related; boundary=eb65e1e765cfe4083ae4ae5abb7909b5 [/PHP] hab die bilddaten gekürzt.. ich hab keine ahnung, wieso es nicht geht :-( Zitieren
ReichMio Geschrieben 23. Dezember 2005 Autor Geschrieben 23. Dezember 2005 Das ganze läuft auf einem Linuxsystem. wie ich oben schon gepostet habe, kommt folgendes bei mir an Hier mein Text Content-Type: image/jpeg Content-ID: <3d335fd29e2bb5ee3a733a060ff2c35e.image001.jpg> Content-Transfer-Encoding: base64 Content-Disposition: inline; filename=mage001.jpg" /9j/4AAQSkZJRgABAQEBLAEsAAD/2wBDAAQCAwMDAgQDAwMEBAQEBQkGBQUFBQsICAYJDQsNDQ0L DAwOEBQRDg8TDwwMEhgSExUWFxcXDhEZGxkWGhQWFxb/2wBDAQQEBAUFBQoGBgoWDwwPFhYWFhYW FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhb/wAARCAK8AgADASIA AhEBAxEB/8QAHQABAAAHAQEAAAAAAAAAAAAAAAECBAUGBwgDCf/EAGYQAAEDAwEEAwcLDgoFCgYC AwECAwQABREGBxIhMRNBUQgUFSJhcdEJMjdTgZGSk5WysxgjNUJSVFVWdHWUobHSFhczOFdic3bB 0yRDcoLhNDZER2SDoqO08UVjZYTC8CVGZial/8QAGwEBAAIDAQEAAAAAAAAAAAAAAAEDAgQFBgf/ xABBEQACAQIDAgcOBgEFAQEBAAAAAQIDEQQhMRJBBRNRcZGhsQYUFSIzNFJTYYHB0eHwFjI1QnKS YyMkQ4LxYiXi/9oADAMBAAIRAxEAPwDv6pJDzTDRdfdQ2hPNS1AAe6anrRPqjyQvuVruhXFKpsQK HUR06edXYei61WNJO12l0mM5bEXLkN1C62s8rlE+PT6amFztv4Qi/HJ9NfHdESOB4rSB5q9UNISO Ax5ia9Iu5epvqLoNB8Ix9E+wfhK3ff8AG+OT6aj4Rt/39G+NT6a+PoGORV8I1ON/qcX8M1ku5afr Or6keEV6J9f/AAjb/v6N8an008I2/wC/o3xqfTXyBy77a58M1MFvD/XOfDNT+Fpet6vqPCK9E+vn hCB9+x/jU+mnhCB9+x/jU+mvkJ0j+P5d34w0D0gf9Jd+MNPwrL1vV9SPCP8A8n187/g/fsf40emn f8H78j/GivkIJEkH/lT3xhqPfMv77e+MPpqfwq/W9X1HhH/56z69d/wvvxj40U7+hffjHxgr5C99 TBylv/Gq9NO/Jw5TJHxyvTUfhZ+t6vqPCP8A89Z9e+/oX32x8YKd/Qvvtj4wV8hO/p/35J+NV6aG dPx/y2V8cr00/C/+Xq+o8Iv0es+vff0L77Y+MFO/Yf32x8YK+QZnT88J8n45XpqVU+4D/p8r45Xp qPwu/W9X1I8Iv0es+v3fsP77Y+MFO/Yf32x8YK+QBnz/AL/lfHq9NSqn3Af/ABCV8er01H4Y/wAv V9SVwi/R6/ofYHv2H99sfGCnfsL77Y+MFfHwz55/6fK+PV6akNwuA/8AiEr49XpqH3Mtf8vV9Se/ 36PWfYbv6F99sfGCnf0L77Y+MFfHhVwnn/4hKH/fq9NSeELh9/yvj1emsH3OW/5Or6jv9+j1n2J7 +hffjHxgp3/B+/I/xor45quE/wDCEo/98r01Kq4T8cZ0rj/85XpqH3O/5Or6krHv0es+x3f8H78j /Gj007/g/fsf40emvjabhPH/AE6Tj+2V6akXcJ3Pv6T8cr01i+5//J1fUnv5+j1n2U8IQPv2P8an 008IQPv2P8an018aFXCaR/y6T8cr015m4zfv2T8cr01i+Af8nV9SVjX6J9m/CNv+/o3xqfTXuy42 62HGnErQeSknINfFpdwmZz37J+OV6a+h/qVMqRK7m+cX5Dr3R6gkIR0iyrdHRMnAzyGSTjymtPG8 F97UuM2r+76l1LEcZK1jpdakoQVLUEpAySTgCvDwhA+/Y/xqfTWG904SO511wQSCNOzcEf2Kq+RQ ffwPr7vwzU8G8Fd+wlLbtb2X+JtJXPtP4Qgffsf41Ppp4Qgffsf41Ppr4s9O/wC3u/DNOnf9vd+G a6X4a/y9X1J2T7TeEIH37H+NT6aeEIH37H+NT6a+LPTv+3u/DNOnf9vd+Gafhr/L1fUbJ9pvCED7 9j/Gp9NPCED79j/Gp9NfFnp3/b3fhmnTv+3u/DNPw1/l6vqNk+03hCB9+x/jU+mnhCB9+x/jU+mv iz07/t7vwzTp3/b3fhmn4a/y9X1GyfabwhA+/Y/xqfTTwhA+/Y/xqfTXxZ6d/wBvd+GadO/7e78M 0/DX+Xq+o2T7TeEIH37H+NT6aeEIH37H+NT6a+LPTv8At7vwzTp3/b3fhmn4a/y9X1GyfabwhA+/ Y/xqfTTwhA+/Y/xqfTXxZ6d/2934Zp07/t7vwzT8Nf5er6jZPtN4Qgffsf41Ppp4Qgffsf41Ppr4 s9O/7e78M06d/wBvd+Gafhr/AC9X1GyfabwhA+/Y/wAan008IQPv2P8AGp9NfFnp3/b3fhmnTv8A t7vwzT8Nf5er6jZPtN4Qgffsf41Ppp4Qgffsf41Ppr4s9O/7e78M06d/2934Zp+Gv8vV9Rsn2m8I QPv2P8an008IQPv2P8an018Wenf9vd+GadO/7e78M0/DX+Xq+o2T7TeEIH37H+NT6aeEIH37H+NT 6a+LPTv+3u/DNOnf9vd+Gafhr/L1fUbJ9pvCED79j/Gp9NPCED79j/Gp9NfFnp3/AG934Zp07/t7 vwzT8Nf5er6jZPtN4Qgffsf41Ppp4Qgffsf41Ppr4s9O/wC3u/DNOnf9vd+Gafhr/L1fUbJ9qo8h h/PQPNubvPcUDj3q9K4w9R/Wtdp13vrUrEiFjeUT9q9XZ9cDG4bvavKje9vkYsVov1RkZ7lu6j/t sT6ZNb0rR3qiIz3L91H/AG2J9MmrODPPaX8l2lOI8jLmPnKlBzUwSa9wjyVN0fk/VX1JRPOXZT7h qIQeo1UBs06M1lsi7PAIIGKjg9le/R+So9GKnZIKcpPZTdNVHReSnR+SmyLlPg9lMHsqo6LyU6MU cQmU+6eymD2V7hHkp0fkqNkm7KYgkf8ACobhqq6M1Atmo2ULspSk9YqQoqqUjyVKUcax2Rcpt01K pJzxqpUjyVKpFQ4k7RSqSe3FSlJqqKMdVSFHkrBxJUikUk9tSqB5VVKRXmpFVuBNymUk9VSKSe3N VJRipFJ7RVbgZKRSlPHnUi08aqiipFJqpxMkylUmvNSeHGqpSf8A2rzUiq3EyTKZSfdr6J+pPDHc 3XD+8cj6JmvnipNfRD1KIY7nC4f3ikfRM1xOG1bC+9G5hPKm4u6c/m664/u7N+hXXyGHIV9eu6b/ AJu2uP7uzfoV18hhyqO5vyVTnR1oilKV6QyFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFK UoBSlKAUpSgFKUoDuH1Hz7E68/KIPzXq7Rri71Hz7E68/KIPzXq7RrwPDXn9T3diMHqK0j6oUM9z HdB/2yJ9Mmt3VpT1QMb3c0XQf9si/TJqrgvz6j/Jdpr4nyM+ZnzyDWOqpg3VUGvJUeir6wonmbsp Q35Kj0Xkqr6KohryfqrKyIuUnR+SnR+SqzoqdFSyBSdFToj5arA35adGKWQKPoqgW/JVb0dQLVLI FH0fkqBbNVha48v1U6PyfqrHZYKQN8Kgpvrqs6LyfqqVTdQ0ChU2akU1nqqvLXuVIW+FRsk3ZRFu pFNmq0t1AtjHKo2SdooS2eypFN+Sq1TdSKbFY2JuUS0V5qRVcpvhkV5Kb41g4mSZRKRUi0f+9Vim 681N1W4mVyjUjsrzUnhxFVikV5rRVbiSUa0V5qTVWpGK81I41TKJkmUi0V9DPUphjucbgP8A/IpH 0TNfPlafJX0I9SrGO50uH94ZH0TNcHh1WwnvRu4Lypt/umv5u+uP7uzfoF18hhyFfXrumP5vGt/7 uzfoF18hRyqrub8lU50dmIpSlekMhSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSg FKUoBSlKA7h9R8+xOvPyiD816u0a4u9R8+xOvPyiD816u0a8Dw15/U93YjB6itMd3yN7ubbmP+1x fpk1uetN93gN7uc7kP8AtcX6VNVcFef0f5LtNfE+QnzM4D6KohvyVWdF5Kh0Xkr66onltopejqbo /wD9xVV0VTBsYqbIbRR9F5KBvB5VWdGOynReSlkRdlJ0fkoGjiqzovJUQ0Kmwuyj6LyVKWvJVd0f HiKgWsDl+qoaF2UJap0VVvRVAt8KxsTtFGGx21AtZHVVWWvJUqm+HKoG0Ui2uHMVIpnzHzVWqRUn R+ShO0iiLXPhUq2jjlVYpBzzqRSOHKo2USURaOM4rzU15BVcpHCvJSKxasCjW1XktvyVXLRw5V4u IrBolMolN9lea0VWLb668nd1IyohPlNVtLUzWZRqRXktFVC3G1cGwpw9iEk15rRJUDux90f/ADFY /ZmteVamt5bGEnuKZaePKvFxNVSokhX8o+EjsbR/ial7wZHFSVOHtWc/8K1p1+RFip8rKDfbWsoS tJUOJANfQf1LAY7na4f3hkfRM18+5SEouDaEpSn60rgB5U19BvUs/wCbvP8A7wyPoma4fDcnLAtv lRt4RJVrew273S383rW/93Zv0C6+Qg5Cvr53SfHufNbf3em/QLr5BDkKq7m/JVOdHYiRpSlekMhS lKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKA7h9R8+xOvPyiD816u0a4u 9R8+xOvPyiD816u0a8Dw15/U93YjB6itP93One7ni4j/ALXG+lTW4K1H3bqd7ufbiP8AtUb6VNV8 Fef0f5LtNfFeQnzM4W6HyVDovJVcGagWeNfXbnlCjDXDlUQ15KrAzUei8lLgpOi8lOiqs6EULQ51 IKPoqdFVYGqgGvJQFJ0XaKgWuGMVW9GByAqBbGOVQ2Cj6LyVKW/JVb0XDlUqm/JWLYKBTYqUt1Wq b8lSqb8lQChU32VKUdXOq1TY5nlXj4ilbiMuK7EAqP6qxlKMdXYlRb0RTFvrrzW35KuSYM1wEoiK SO1xQT/xqKLRKUcuvNt+RCSo++cfsqp4imtMy1UZloU3ivF0oQcKUB5KyNuysAfXC45/tKwPeGKh cG7faYSpUlTMRlHBTigEgE8q16mNUFd2S9r++0ujh2/aY10bzg+tRnVDtKd0frxQ2+YvmGm/OSo/ 4VkmlJmm74pRRqe3RmGloRIfe3t2OFA7ql8OCSRje5AkA4zVwtd52Y225gagm3Ke1EWpy4sQChDi IoHiyWThSXmyd0ndUCEqzjgccnEcOYaGTqX5vv4m5DATf7ekwo2kk/XXnFeRPij9XGgtbCTlDCSR 1qGT75q4a92l6MXZ3rPpqHGtlxUlcmDeVfX2pbBJ6NCkOFZadwfGHUpsjkoEaSf1nqB5+WxerlMe C0FO7v46F1JylSUjAGFDBx1E1yKvdDSb8SDfO/8A02o4FrVm0bnLgQI77sl9KExgC8AMlsHgMgcq xm/61tcF4MssOyVKSFJKVJCTny5NYJc9UXCdL78fWFSHWCzLVyTJHEAqSMDIBx7gNWhhaR64ZwRw rQqcO4mf5UkXRwdNa5maPazukl1oMxGYjbzm4HFJKyOOPNwq0z7te3pL7Emc9vNK3SlB3Rw82Klk OI8EzYaN7608iTHUfuTwIz28Un3DUk+Ywb29Kc8REhpKyOsKIBP681o1MZiKn5psujRpx0RcdDqX 4WXvqJKmzxJyTX0s9S3GO54n/wB4H/oma+aejpDD15R0OcAKByPJX0s9S5GO56nj/wDyB/6JmujU lfgb/satrYz3G3e6S/m+a2/u7N+gXXyBHIV9fu6R/m+63/u7N+gXXyBHIVudzfkqnOjoRI0pSvSG QpSlAKUpQClKUApSlAKUpQClKUApSlAKUpQClKUApSlAKUpQClKUApSlAdw+o+fYnXn5RB+a9XaN cXeo+fYnXn5RB+a9XaNeB4a8/qe7sRg9RWp+7UTvbA7gP+1RvpU1titWd2Une2Ezx/2qP9IKq4L8 +o/yXaa+J8hPmZxOWqdFVf0Pnp0Pnr61dHl7FB0XHGKmDXkqt6Lz1ENeal0LFCWvJUOiPYaryz5K gGfIaXRhYoui8lQDfDlVd0Qxk8BVOuRG3t1tZdV9y0kq/ZyqJTjHVkqLeiPHou0ULfkNe7bc18+I whkH7Z1WT7w9Ne8O0OSXQ2p995xecNtAJzjngDj+uqJ4unFF0cPORbXQhCd5agkeU4ryB6Tgyhx3 /YQSPf5VkUyzM2qJKmSoiWkwEIckqWN5bSV+tURxVg5GD5asUrXGk2JBji6JddSSNxCcZx2E8x5s 46wK5lfhzD09Zrt7DbhwdN6p9gbt89zkwhodri+PvDP7a9U2RSuL0tf+y0gJ/WcmsRuW3PS8ZEph qyyxIaUttKpC89firCU4z5UkjHME8qwu87eb1JtiYEa2RGmwolSiMrXk5wV8Dw6iMY681ya3dLS/ bd9Rtw4NS1t2m6U2e3seO42g9W88ve83rjiq1UZiKxMW88xHTb2Q7ISpQBbSSAOA5EkjAOM5rl65 7TtUzI7zLkprD7aEOKDSd47isg57ccCORHMZrH37/dnSr/TnUhbamlBCiMtq5oPan+qeA6q5VTug rt+JFLr+RtRwVNas6wOrNAsux23LxIlOPlKQ2hnvcBeTvslbnrHgACErACs8CaxjV+2rSVmuk6Bb 9NMyHIMpKmXJMh3/AEyMUeMnkOjeSog8UlJAI6uPNL7776yp51xxRABK1EkgDAHuCve4z3J0RpMo FchhIQh7PFaBySrtI6j2cOzHPq8KYyprUfuy7C+NGlHSJm+p9rN/uMoNtutmO2HWsJb6ISG1+t30 pOAtPUoY9OJz9TXiYd6TNccUqKIrilc3WgeCV/dEcME8eA7Ks4BPCvSPHdfcDbLa3FnklCck1oyn ... LsWRTeDrf94xvik+ing63/eMb4pPoqppS7FkU3g63/eMb4pPop4Ot/3jG+KT6KqaUuxZFN4Ot/3j G+KT6KeDrf8AeMb4pPoqppS7FkU3g63/AHjG+KT6KeDrf94xvik+iqmlLsWRTeDrf94xvik+ing6 3/eMb4pPoqppS7FkU3g63/eMb4pPop4Ot/3jG+KT6KqaUuxZFN4Ot/3jG+KT6KeDrf8AeMb4pPoq ppS7FkSR2WWEbjLSG05zhCQBn3KnpSoJP//Z [/PHP] die bilddaten habe ich wieder gekürzt.. ausser du willst sie ganz .. Zitieren
geloescht_JesterDay Geschrieben 23. Dezember 2005 Geschrieben 23. Dezember 2005 --eb65e1e765cfe4083ae4ae5abb7909b5 Content-Type: Text/plain Content-Transfer-Encoding: quoted-printable Hier mein Text [b]Hier fehlt der Trenner![/b] Content-Type: image/jpeg Content-ID: <4dc96f82761ba5483dfdf5ca9a55921d.image001.jpg> Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="image001.jpg" siehe oben... 2mal Zeilenumbruch und der Trenner nach dem Text Zitieren
ReichMio Geschrieben 23. Dezember 2005 Autor Geschrieben 23. Dezember 2005 oki.. jetzt hab ich das bild als anhang.. jetzt muss ich nur noch drauf zugreifen können.. problem: mein htmlcode wird nicht angezeigt :-( EDIT: oki das problem mitm HTMLCODE hab ich jetzt gelöst.. hatte nen . vergessen.. nur wie kann ich jetzt über diese CID id auf das bild zugreifen? Zitieren
geloescht_JesterDay Geschrieben 23. Dezember 2005 Geschrieben 23. Dezember 2005 problem: mein htmlcode wird nicht angezeigt :-( Du hast als Content-Type auch text/plain. Dass der Inhalt als HTML interpretiert werden soll weiss der Client also gar nicht. $MailBody.= "Content-Type: Text/HTML; charset=iso-8859-1$EOL"; [/php] $EOL = "\r\n" (oder was immer du brauchst) Zitieren
ReichMio Geschrieben 23. Dezember 2005 Autor Geschrieben 23. Dezember 2005 DANKE DANKE DANKE !!! JETZT hab ichs !! Danke dir !! echt super.. ! hast was gut bei mir. Zitieren
AndiLaken Geschrieben 16. Februar 2009 Geschrieben 16. Februar 2009 Hallo, ich bin zufällig au der Suche nach einer Lösung für mein Problem (Bild im Anhang einer Mail zu versenden und in der Mail zur Darstellung darauf zu zugreifen) auf diesen mittlerweile schon über 4 Jahren alten Thread gestoßen. Ich bin genauso vorgegangen, wie es JesterDay gepostet hat. Leider mag es bei mir überhaupt nicht klappen:rolleyes:. Das Bild kommt als wilder Textsalat an, was meinen Provider dazu verführt, diese Mail gleich mal in den Spam Ordner zu verbannen. Mein Skript sieht wie folgt aus: <?php $Empfaenger = "testmail@an_mich.de"; $Betreff = "Testmail!"; $mime_boundary = "" . md5(uniqid(mt_rand(), 1)); $Header = "From: Andi<testmail@an_mich.de>"; $Header.= "MIME-Version: 1.0\r\n"; $Header .= "\r\n"; $Header.= "Content-Type: multipart/related; boundary=\"".$mime_boundary."\"; type=\"text/plain\"\r\n"; $MailBody = "--".$mime_boundary."\r\n"; $MailBody.= "Content-Type: Text/plain\r\n"; $MailBody.= "Content-Transfer-Encoding: quoted-printable\r\n\r\n"; $MailBody.="Hier steht mein Text"; $MailBody.= "\r\n\r\n"; $MailBody.= "--".$mime_boundary."\r\n"; $CID = md5(uniqid(rand(),1)); $ImgName = "bild.jpg"; $ImageLocation = "bild.jpg"; $fp = fopen ($ImageLocation, "rb"); $str = fread ($fp, filesize ($ImageLocation)); $data = chunk_split(base64_encode($str)); $content.= "Content-Type: image/jpeg\r\n"; $content.= "Content-ID: <$CID.$ImgName>\r\n"; $content.= "Content-Transfer-Encoding: base64\r\n"; $content.= "Content-Disposition: inline; filename=\"$ImgName\"\r\n\r\n"; $content.= $data; $MailBody.= $content; $MailBody.= "--".$mime_boundary."--\r\n"; mail($Empfaenger, $Betreff, $MailBody, $Header); ?>[/PHP] Die ankommende Mail sieht so aus: [PHP]Content-Type: multipart/related; boundary="eea6c52cc7f29eb32dd00fb707c68c92"; type="text/plain" --eea6c52cc7f29eb32dd00fb707c68c92 Content-Type: Text/plain Content-Transfer-Encoding: quoted-printable Hier steht mein Text --eea6c52cc7f29eb32dd00fb707c68c92 Content-Type: image/jpeg Content-ID: <3bd59b25e1c986f7b30741ccaf1fd6c3.bild.jpg> Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="bild.jpg" /9j/4AAQSkZJRgABAgEASABIAAD/4QzSRXhpZgAATU0AKgAAAAgACwEPAAIAAAAJAAAAkgEQAAIA AAANAAAAmwESAAMAAAABAAEAAAEaAAUAAAABAAAAqAEbAAUAAAABAAAAsAEoAAMAAAABAAIAAAEx AAIAAAAcAAAAuAEyAAIAAAAUAAAA1AITAAMAAAABAAIAAIKYAAIAAAAFAAAA6IdpAAQAAAABAAAA 8AAAA0xGVUpJRklMTQBGaW5lUGl4UzJQcm8AAAr8gAAAJxAACvyAAAAnEEFkb2JlIFBob3Rvc2hv Bilddaten sind wie es ReichMio gemacht gat gekürzt... Hoffe jemand (insbesondere JesterDay) kann mir bei dieser Sache unter die Arme greifen! Viele Grüße Andi Zitieren
Schandfleck Geschrieben 19. Februar 2009 Geschrieben 19. Februar 2009 Schaue Dir mal dies hier an. Wenn es keine HTML-Mail seien soll, kann einiges entfallen. Zitieren
casi246 Geschrieben 19. Januar 2010 Geschrieben 19. Januar 2010 Hallo ! So, die Seite baut sich langsam auf und ich fange schonmal an zu Tippen. Zumindest habe ich diesem Beitrag hier gefunden. Allerdings klappt das bei mir alles noch nicht so. Mein Problem: Ich kann praktisch nur an der HTML-Ausgabe der Mail etwas ändern, also den $content selbst, der dann "irgendwo" als "MailBody" ausgegeben wird. Im HTML-Teil wird auch eine Grafik ausgegeben, der Code ist folgender: <tr valign="top" width="100%"> <td width="100%"><img src="cid:vendor_image" alt="vendor_image" width="100%" /></td> </tr> Wobei $vendor_image den kompletten http-Pfad inklusive des Dateinamens und der CID-Endung enthält. Diese CID-Endung wurde beim Hochladen des Firmenlogos über das Shopsystem einfach an die Datei hintendrangehängt. Das klappt also. Nun möchte ich aber eine 2te Grafik in das email-template einfügen. Vom Aufbau her ist die template-datei etwa so: <html> <head> </head> <body> </body> </html> Ich versuche also über dem HTML-Teil noch ein PHP-Script zu setzen, der in etwa so aussieht: <?php $bildname = "12345_cid_12345.logo.jpg"; $bildpfad = "./Joomla/components/com_virtuemart/shop_image/vendor/12345_cid_12345.logo.jpg"; // $bildpfad = "http://meinedomain/Joomla/components/com_virtuemart/shop_image/vendor/12345_cid_12345.logo.jpg"; $fp = fopen ($bildpfad, "rb"); $CID = "12345_cid_12345"; $str = fread ($fp, filesize ($bildpfad)); $daten = chunk_split(base64_encode($str)); $inhalt.= "Content-Type: image/jpg\r\n"; $inhalt.= "Content-ID: <$CID.$bildname>\r\n"; $inhalt.= "Content-Transfer-Encoding: base64\r\n"; $inhalt.= "Content-Disposition: inline; filename=\"$bildname\"\r\n\r\n"; $inhalt.= $daten; echo $inhalt; Alleine die Datei mit fopen zu öffnen scheint zu scheitern. Zumindest wird ein klares FALSE ausgegeben, aber nur wenn der Pfad mit "./" beginnt. Muss fopen nun nur den PFAD enthalten oder PFAD MIT DATEI? Muss diese CID im Dateinamen davorgesetzt werden? Enhält Content-ID dann die CID+Dateinamen mit CID? Geht das überhaupt so, wie ich mir das vorstelle? Es grüßt und dankt Carsten Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.