Michael H: HTML in Mails

Hi,

Bevor es einen Sturm der entrüstung gibt: Alles was ich wissen will verwende ich für HTML-Emails innerhalb eines abgeschotteten Intranet-Netzes.

Zur Frage: Ich erzeuge per PHP HTML-Mails als Reporting (die wollten das als HTML, kann man auch nix machen). Die Frage ist: Welche HTML-Codes funktionieren in Mails?

Ich habe z.B. Probleme mit internen Sprung-Links (das Zeugs mit <a name="...">). Zudem habe ich Probleme mit Grafiken. Muss man die verwendeten Grafiken denn als Attatchment anhängen?

Vielleicht gibt es ja irgendwo eine gute Seite, die sich mit HTML für Mails beschäftigt?

Merci,
        Michael H.

  1. Hi,

    Die Frage ist: Welche HTML-Codes funktionieren in Mails?

    Ich denke mal fast alle, die wichtigsten natürlich schon. Ich denk, das hängt vom Empfänger ab.

    Ich habe z.B. Probleme mit internen Sprung-Links (das Zeugs mit <a name="...">).

    Textmarken? Die gehen bei mir mit MS Outlook. Bei was anderm hab ichs nicht ausprobiert.

    Zudem habe ich Probleme mit Grafiken. Muss man die verwendeten Grafiken denn als Attatchment anhängen?

    Ich würde die Bilder im Net speichern und dann immer beim öffnen der Mail laden. Allerdings ist es dumm, wenn der Empfnger seine Mails offline nochmal durchschaut.

    Wenn wir schon gerade dabei sind, wie hängt man Bilder an Mails an?
    1. die die im Text angezeigt werden können
    2. allgemein Anhänge

    Vielleicht gibt es ja irgendwo eine gute Seite, die sich mit HTML für Mails beschäftigt?

    Sicher irgendwo. Ich weiß grad nichts.

    1. Halihallo Andy

      Wenn wir schon gerade dabei sind, wie hängt man Bilder an Mails an?

      1. die die im Text angezeigt werden können
      2. allgemein Anhänge

      http://pear.php.net/package/Mail_Mime
      http://ch2.php.net/manual/en/function.mail.php (und die
      dort verlinkten RFC's lesen).

      Vielleicht noch eine Kurzzusammenfassung:

      Normale Anhänge versenden:
      Top-Entity (der ganze "Mailsource" selber) ist definiert als
      MIME-Typ "multipart/mixed", welchem
       a) ein Entity-Typ "text/plain" => der Mailtext und
       b) ein oder mehrere andere Entit(y|ies) für das/die angehängte
          Dokument(e)
      angehängt werden.

      HTML-Email mit plain/text-Fallback:
      Top-Entity ist definiert als MIME-Typ "multipart/alternative",
      welchem
       a) ein Entity des Typs "text/plain" und
       b) ein Entity des Typs "text/html"
      angehängt werden.

      HTML-Email mit eingefügten Bildern oder anderen Ressourcen:
      Top-Entity ist definiert als MIME-Typ "multipart/relative", welchem
       a) ein Entity des Typs "text/html" und
       b) einem oder mehreren Entities der Ressourcen
      angehängt werden.
      Jedem "inline"-Ressourcen Entity (Bild/Sound/...), welches in den
      HTML-Quelltext eingebettet werden soll, muss eine 'Content-Id' im
      Header zugewiesen werden, welche im HTML-Source über z.B.
         <img src="cid:<ressource15>">
      referenziert wird.

      HTML-Mail mit optionalem Text-Fallback mit "inline-Ressourcen":
      Gleich, aber ein multipart/alternative "vorgeschalten", welchem noch
      ein ganz normaler "text/plain" Part (die Alternative für z.B.
      Textbasierte Mailclients) angefügt ist.

      HTML-Mail mit opt. Text-fallback mit inline-Ressourcen und normalen
      Attachments:

      - Huch, das habe ich nie für Outlook zum Laufen gebracht, denn
         Outlook zumindest (andere hab ich gar nicht mehr getestet)
         scheint damit mächtig Probleme zu haben.

      Viele Grüsse

      Philipp

      1. Halihallo Andy

        Vielleicht noch ein kleines Design-Update: ;)

        Normale Anhänge versenden:
        Top-Entity (der ganze "Mailsource" selber) ist definiert als
        MIME-Typ "multipart/mixed", welchem
         a) ein Entity-Typ "text/plain" => der Mailtext und
         b) ein oder mehrere andere Entit(y|ies) für das/die angehängte
            Dokument(e)
        angehängt werden.

        multipart/mixed
          |
          +-- text/plain   oder   text/html
          |
          +-- mehrere Entities angehängter Dokumente

        HTML-Email mit plain/text-Fallback:
        Top-Entity ist definiert als MIME-Typ "multipart/alternative",
        welchem
         a) ein Entity des Typs "text/plain" und
         b) ein Entity des Typs "text/html"
        angehängt werden.

        multipart/alternative
         |
         +-- text/plain
         |
         +-- text/html

        der Mail-Client wählt dann dasjenige Entity aus, dessen MIME-Typ er
        verarbeiten und darstellen kann.

        HTML-Email mit eingefügten Bildern oder anderen Ressourcen:
        Top-Entity ist definiert als MIME-Typ "multipart/related", welchem
         a) ein Entity des Typs "text/html" und
         b) einem oder mehreren Entities der Ressourcen
        angehängt werden.
        Jedem "inline"-Ressourcen Entity (Bild/Sound/...), welches in den
        HTML-Quelltext eingebettet werden soll, muss eine 'Content-Id' im
        Header zugewiesen werden, welche im HTML-Source über z.B.
           <img src="cid:<ressource15>">
        referenziert wird.

        multipart/related
         |
         +-- text/html
         |     |
         |     +-- Quelltext: z.B. <img src="cid:<ressource16>">
         |
         +-- z.B. image/gif
         |     |
         |     +-- "Content-Id: <ressource15>" im Entity-Header
         |
         +-- z.B. image/jpeg
               |
               +-- "Content-Id: <ressource16>" im Entity-Header

        HTML-Mail mit optionalem Text-Fallback mit "inline-Ressourcen":
        Gleich, aber ein multipart/alternative "vorgeschalten", welchem noch
        ein ganz normaler "text/plain" Part (die Alternative für z.B.
        Textbasierte Mailclients) angefügt ist.

        multipart/alternative
         |
         +-- text/plain
         |
         +-- multipart/related
               |
               +-- text/html
               |
               +-- image/gif
               |
               +-- ...

        HTML-Mail mit opt. Text-fallback mit inline-Ressourcen und normalen
        Attachments:

        - Huch, das habe ich nie für Outlook zum Laufen gebracht, denn
           Outlook zumindest (andere hab ich gar nicht mehr getestet)
           scheint damit mächtig Probleme zu haben.

        Wie gesagt: Hier habe ich bereits mehreres versucht und bin bisher
        immer gescheitert. HTML mit Text-Fallback + Inline-Ressourcen und
        normalen Attachments sind anscheinend etwas "tricky".

        Viele Grüsse

        Philipp

      2. Hi Philipp,

        Ich kann nur sagen: WOW und vielen vielen Dank. Ich deiner Beschreibung habe ich so ziemlich Alles gefunden was ich gebraucht habe, v.a. der Tip mit der CID bei Bildern war Gold wert. Die MIME-Types lass ich eine nette Mail-Klasse (nicht PEAR) für mich setzen, da passt auch Alles (auch der alternative Plaintext-Inhalt).

        Vielen Dank. Daran sieht man wieder, dass diese Forum genau das Richtige ist, wenn man Hilfe braucht.

        Thx,
            Michael

        1. Halihallo Michael

          Ich kann nur sagen: WOW und vielen vielen Dank. Ich deiner Beschreibung habe ich so ziemlich Alles gefunden was ich gebraucht habe, v.a. der Tip mit der CID bei Bildern war Gold wert.

          Freut mich, dass ich helfen konnte.

          Vielen Dank. Daran sieht man wieder, dass diese Forum genau das Richtige ist, wenn man Hilfe braucht.

          Dazu ist es da :-)

          Viele Grüsse

          Philipp