Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

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

Geschrieben

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

Geschrieben

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.

Geschrieben

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!

Geschrieben

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

Geschrieben
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 ;)

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...