forTeesSake Geschrieben 30. November 2004 Teilen Geschrieben 30. November 2004 hi und hallo, ich habe eine anwendung in der ich eine funktion habe die mir eine produktliste erstellt. diese möchte ich sowohl zum erzeugen einer produkliste in der anwendung als auch zum generieren einer html e-mail verwenden. also in etwa: function writeProdukliste(PARAMETER){ echo("<table width=\"630\" border=\"0\" cellspacing=\"0\" cellpadding=\"11\">"); echo("<tr><td align=\"right\" colspan=\"".($productsInOneLine + 3)."\">"); echo("<span class=\"auswahlProduktkategorie\">Auswahl Produktkategorie: </span>"); writeSelProdukkategorien(1, $theKat); echo("<br><br></td></tr>"); } und so weiter. diese funktion schreibt mir also alle produkte aus einer datenbank schön html formatiert raus. diese funktion wird einmal in der anwendung selbst (zur auswahl von produkten) verwendet. und ein zweites mal wenn ein benutzer seine produkte ausgewählt hat um die html e-mail zu erzeugen. und nun hänge ich, denn wenn ich die mailfunktion aufrufe und als mailtext die funktion eintrage geht das ja nicht, da die funktion nur schreibt, also nix zurückgibt. wie mache ich das jetzt am besten dass ich die html ausgabe der funktion in die mail bekomme??? muss ich vielleicht zuerst eine textdatei mit fwrite schreiben und die dann wieder auslesen??? (dann wäre meine funktion aber eigentlich unnütz weil ich sie kopieren und die "echo" mit "fwrite" austauschen müsste.) *schlauch*... danke schonmal für alle die sich gedanken machen Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
robotto7831a Geschrieben 30. November 2004 Teilen Geschrieben 30. November 2004 Kannst Du die Funktion nicht etwas umbauen? In der Funktion machst Du kein echo sondern immer nur $text.="abc".... Und als Rückgabewerte gibst Du $text zurück. Beim normalen Aufruf mußt Du dann noch $text ausgeben lassen. Frank Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
geloescht_JesterDay Geschrieben 30. November 2004 Teilen Geschrieben 30. November 2004 und nun hänge ich, denn wenn ich die mailfunktion aufrufe und als mailtext die funktion eintrage geht das ja nicht, da die funktion nur schreibt, also nix zurückgibt. wie mache ich das jetzt am besten dass ich die html ausgabe der funktion in die mail bekomme??? Mach doch ne "richtige" Funktion, also eine Funktion die was zurückliefert (was eine Funktion ja von Prinzip her immer tut). Also: function writeProdukliste(PARAMETER) { $Result = "<table width=\"630\" border=\"0\" cellspacing=\"0\" cellpadding=\"11\">" [...] Return $Result; } Dann machst du später einfach ein $Output = writeProdukliste(PARAMETER); echo $Output; mail($Output...); Nur wirst du keine Freude mit der Mail so haben Mail sendet Textmail. Und wenn du einen HTML-Text an die Mail funktioon übergibst, siehst du eben den HTML-Text in der Mail, ohne Formatierung etc. Um HTML als Mail zu senden, musst du den Header entsprechend anpassen und den contenttype auf text/HTML ändern usw. Wenn auch noch Bilder dabei sein sollen wird es richtig schön, mit Mutlipart Messages. Ich hab das schonmal für nen Kunden gemacht. Also frag ruhig wenn du noch Probleme hast, ich versuch dir dann zu helfen. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
forTeesSake Geschrieben 30. November 2004 Autor Teilen Geschrieben 30. November 2004 das mit text/html hab ich schon. da muss man ja nur die header richtig setzen. hab ich auch schon ausprobiert. bei der sache mit der funktion haste auch recht. wollte mir nur die mühe ersparen die ganze funktion so umzubauen wie du das beschrieben hast, aber das ist wohl das beste. morgen ist auch noch ein tag vielen dank Jesterday! Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
kills Geschrieben 30. November 2004 Teilen Geschrieben 30. November 2004 oder lass deine funktion wie sie ist und so: ob_start(); writeProdukliste(PARAMETER); $text = ob_get_contents(); ob_end_clean(); mail ( 'a@b.de', 'Betreff', $text); [/PHP] Gruß, Markus Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
geloescht_JesterDay Geschrieben 30. November 2004 Teilen Geschrieben 30. November 2004 das mit text/html hab ich schon. da muss man ja nur die header richtig setzen. hab ich auch schon ausprobiert. Wenn du es gut machen willst, sendest du das einmal als Text und zusätzlich auch noch als HTML. Also 2 in einem. Nicht jeder MailClient kann oder will HTML anzeigen. Von daher werden HTML Mails eigentlich immer auch als PlainText zusätzlich versendet. (Unser GroupWise tut es zumindest so, andere hab ich danach noch garnicht geprüft. Sinn macht es aber.) EDIT: Naja, es gibt auch genug HTML-only. Das ist mir damals nur an unseren Mails aufgefallen als ich mit HTML Mails rumprobiert hab. Vergiss es am besten Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
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.