Herbert: Mail formatieren

Hallo, bitte um einen Tipp
Ich habe ein Formular, und verschicke die Daten mit dem PHP-Befehl MAIL. Die Zeilenschaltungen klappen ganz gut;
aber ?
Kann man die Mails irgendwie mit Tab oder so formatieren dass die einzelnen Variablen (z.B. Zahlenkolonnen) übersichtlich untereinander stehen . Oder geht das mit PHP grundsätzlich nicht ?

Vielen Dank
Herbert

  1. Also ich würde dir da empfehlen alles in ne Tabelle zu packen und dann so zu schicken, geht am besten, musste nicht mal mit PHP machen einfach html <table><tr><td></td></tr></table>
    hoffe du kannst was mit anfangen

    danushka

  2. Zum formatieren Deiner E-Mail kannst Du HTML benutzen:

    //###### Parameter für die E-Mail ######
    $betreff = "lalala"; // Betreff: Text
    $body = "";
    $xtra = "From: newsletter@dada.de (hossa)\r\n";
    $xtra .= "Content-Type: text/html\r\nContent-Transfer-Encoding: 8bit\r\n";
    $xtra .= "X-Mailer: PHP ". phpversion();

    //###### E-Mail abschicken ######
    mail($email,$betreff,$body,$xtra);

  3. Ich habe ein Formular, und verschicke die Daten mit dem PHP-Befehl MAIL. Die Zeilenschaltungen klappen ganz gut;
    aber ?
    Kann man die Mails irgendwie mit Tab oder so formatieren dass die einzelnen Variablen (z.B. Zahlenkolonnen) übersichtlich untereinander stehen . Oder geht das mit PHP grundsätzlich nicht ?

    Mit PHP ist (fast) alles moeglich. Du koenntest sogar HTML-Mails mit eingebetteten Bildern verschicken.

    Die Frage ist vielmehr, ob das E-Mail-Programm des Empfaengers mit dem klarkommt, was Du ihm schickst.

    Auch wenn Du HTML-Mails verschickst (wie Dir die andern vorgschlagen haben), solltest Du immer auch noch den gleichen Text im Nur-Text-Format schicken.

    Ich weiss nicht, ob im Nur-Text-Format fuer E-Mail Tabulatoren vorgesehen sind, und selbst wenn, bleibt es offen, ob alle E-Mail-Clients einen Tabulator auch gleich breit (z.B. 5 Zeichen) anzeigen. Das waere mir also zu unsicher.

    Du koenntest aber versuchen, die Zwischenraeume mit hinzugefuegten Leerzeichen so zu machen, dass die Zahlen schoen untereinander stehen.

    Sterne statt Leerzeichen zum Verdeutlichen:
    1***5****10***15***20***25***30
    +---+----+----+----+----+----+
    Kurzer Text*******************CHF  25.00
    Langer Langer Mustertext******CHF 111.00
    ******************************----------
    Total*************************CHF 136.00

    "Von Hand" wuerde man das so machen: Laenge der Texte bestimmen, Differenz zu einer Zahl (z.B. 30) berechnen, soviele Leerzeichen einfuegen.
    In PHP geht es noch einfacher mit der Funktion str_pad(), siehe Link oben:
    $mailbody.=str_pad($text,30);
    $mailbody.="$waehrung ";
    $mailbody.=sprintf("%3.2f",$betrag);
    $mailbody.="\n";

    HTH, mfg
    Thomas