Markus: HTML Mail

Hallo!

Habe vor kurzer Zeit schonmal ne Frage wegen HTML Mail gestellt. Und zwar möchte ich aus einem Formular Daten auslesen und als Mail versenden. Es sollte so aussehen:

Beruf:       Programmierer
Adresse:     Hauptstrasse 127
Land:        Österreich

usw.

Problem sind die Leerzeichen. Wenn ich die Leerzeichen händisch eingebe dann wird es beim Empfänger in einer anderen Schrift (Times New Roman anstatt Courier New) ausgegeben. Natürlich sieht das ganze dann komplett verwackelt aus.

Beruf:   Programmierer
Adresse:    Hauptstrasse 127
Land:   Österreich

Wie kann ich dies am besten lösen? php ist mir zu schwierig, sollte ne einfache lösung sein wenn möglich.

hoffe ihr könnt mir helfen,

lg,

Markus

  1. Moin!

    wenn ich die Leerzeichen händisch eingebe dann wird es beim Empfänger in einer anderen Schrift ausgegeben.

    Die Leerzeichen werden in einer anderen Schrift ausgegeben...? Was heißt händisch eingeben? Non-breaking-Spaces?

    Wie kann ich dies am besten lösen? php ist mir zu schwierig, sollte ne einfache lösung sein wenn möglich.

    Ich verstehe nicht ganz, wie Du das überhaupt versucht hast und was da mit der Schrift dann durcheinander kam.
    Das Verschicken von Mails muß in jedem Fall serverseitig gelöst werden. Ansonsten kannst Du nur mailto-Links setzen.
    PHP wäre eine sehr einfache Methode. Wenn Du die mail()-Funktion benutzt mußt Du nicht einmal selbst deine Mail an sendmail weitergeben. Im Prinzip brauchst Du hier nur eine Zeile Code. In anderen Sprachen ist das nicht so einfach.
    Welche Möglichkeiten (Sprachen) stehen dir denn ansonsten zur Verfügung? Weitere Überlegungen machen keinen Sinn, ohne das Du uns das verrätst.

    Gruß, rob

    1. Hallo!

      Habe dir mal den kompletten mailsender kopiert. Ist etwas viel. Hoffe das hilft weiter.

      subject = Request.QueryString("subject")
      if subject = "" THEN subject = "Bewerbung Online"
      on error resume next
      ziel=request.form("ziel")
      email=request.form("email")
      '------------------------------------------------------------------
      pers_daten="PERSOENLICHE DATEN" & chr(13)& chr(10)
      pers_daten=pers_daten & "-----------------------------------------------" & chr(13)& chr(10)
      pers_daten=pers_daten & "Position:                    " & request.form("Position") & chr(13) & chr(10)
      pers_daten=pers_daten & "Titel:                       " & request.form("Titel") & chr(13) & chr(10)
      pers_daten=pers_daten & "Vorname:                     " & request.form("Vorname") & chr(13) & chr(10)
      pers_daten=pers_daten & "Nachname:                    " & request.form("Nachname") & chr(13) & chr(10)
      pers_daten=pers_daten & "Adresse:                     " & request.form("Adresse") & chr(13) & chr(10)
      pers_daten=pers_daten & "Postleitzahl, Ort:           " & request.form("plzort") & chr(13) & chr(10)
      pers_daten=pers_daten & "Geburtsdatum:                " & request.form("geburtsdatum") & chr(13) & chr(10)
      pers_daten=pers_daten & "Nationalitaet:               " & request.form("nationalitaet") & chr(13) & chr(10)
      pers_daten=pers_daten & "Familienstand:               " & request.form("familienstand") & chr(13) & chr(10) & chr(13)& chr(10)
      pers_daten=pers_daten & "KONTAKT" & chr(13) & chr(10)
      pers_daten=pers_daten & "-----------------------------------------------" & chr(13) & chr(10)
      pers_daten=pers_daten & "Telefon geschaeftlich:       " & request.form("Telefonbuero") & chr(13) & chr(10)
      pers_daten=pers_daten & "Telefon privat:              " & request.form("Telefonprivat") & chr(13) & chr(10)
      pers_daten=pers_daten & "Handy:                       " & request.form("Geburtsort") & chr(13) & chr(10)
      pers_daten=pers_daten & "E-Mail:                      " & request.form("email") & chr(13) & chr(10) & chr(13)& chr(10)
      pers_daten=pers_daten & "PRAESENZ-, ZIVILDIENST" & chr(13)& chr(10)
      pers_daten=pers_daten & "-----------------------------------------------" & chr(13) & chr(10)
      pers_daten=pers_daten & "Praesenz-, Zivildienst "& chr(13) & chr(10)
      pers_daten=pers_daten & "abgeleistet:                 " & request.form("praesenzdienst") & chr(13) & chr(10)
      pers_daten=pers_daten & "Dauer:                       " & request.form("dauer")
      pers_daten=pers_daten & " bis: " & request.form("dauer2") & chr(13) & chr(10)
      pers_daten=pers_daten & "Standort:                    " & request.form("standort") & chr(13) & chr(10) & chr(13)& chr(10)
      pers_daten=pers_daten & "FINANZIELLES" & chr(13)& chr(10)
      pers_daten=pers_daten & "-----------------------------------------------" & chr(13) & chr(10)
      pers_daten=pers_daten & "derzeitiges Bruttoeinkommen: " & request.form("Bruttoeinkommen") & chr(13) & chr(10)
      pers_daten=pers_daten & "Gehaltswunsch Brutto:        " & request.form("Gehaltswunsch") & chr(13) & chr(10) & chr(13)& chr(10)
      pers_daten=pers_daten & "AUSBILDUNG" & chr(13)& chr(10)
      pers_daten=pers_daten & "-----------------------------------------------" & chr(13) & chr(10)
      pers_daten=pers_daten & "Ausbildung:                  " & request.form("Ausbildung") & chr(13) & chr(10)
      pers_daten=pers_daten & "bisherige Berufstaetigkeit:  " & request.form("Berufstaetigkeit") & chr(13) & chr(10)
      pers_daten=pers_daten & "Zeugnis:                     " & request.form("Zeugnis") & chr(13) & chr(10)
      pers_daten=pers_daten & "Sprachkenntnisse:            " & request.form("Sprachkenntnisse") & chr(13) & chr(10)
      pers_daten=pers_daten & "Bemerkungen:                 " & request.form("Bemerkungen") & chr(13) & chr(10) & chr(13)& chr(10)
      pers_daten=pers_daten & "BISHERIGE LAUFBAHN UND AUSBILDUNG" & chr(13)& chr(10)
      pers_daten=pers_daten & "-----------------------------------------------" & chr(13) & chr(10)
      pers_daten=pers_daten & "Grund der Bewerbung:         "& request.form("Grund") & chr(13) & chr(10)
      pers_daten=pers_daten & "Bewerbung fuer den Standort: " & request.form("Standort2") & chr(13) & chr(10)
      '--------------------------------------------------------------------------------
      body=pers_daten
      Dim mail
      set mail = Server.CreateOBject( "JMail.SMTPMail" )
      mail.ServerAddress = "mail.1000ps.at"
      mail.Sender = email
      mail.SenderName = email
      mail.AddRecipient ziel
      'mail.AddRecipientBCC "clouchard@web.de"
      mail.subject= subject
      mail.Body = body
      mail.Execute
      mail.close
      set mail=nothing
      mailerror=false
      If Err.Description = "" Then
      %>

      <title>Thank you</title>
      </head>

      <body bg>

      <h2><font face="Arial" size="3"><b>Vielen Dank! Ihre E-Mail wurde abgeschickt!</b></font></h2>
      <font face="Arial" size="2"><b>E-Mail=</b></font><%=email%><br>

      </body>
      <%
      else
      %>
      <title>No valid E-Mail Adress</title>
      </head>

      <body>

      <h2>No valid E-Mail Adress</h2>

      E-Mail=<%=email%><br>

      </body><%
      end if
      %>
      <br>
      <h3>
      <font face="Arial"><a href="javascript:history.back()" size="2"><b>
      Zurück</b></font></a></h3>

      </html>

      1. Also von ASP und VBScript habe ich keine Ahnung... Wenn ich mir das aber so ansehe, dann wundert es mich nicht, daß das nicht funktioniert.
        Ich sehe hier nichts davon, daß hier irgendwie eine HTML-Mail versendet werden soll. Da müßte man wohl text/html als Header übergeben... Ohnehin werden hier scheinbar gar keine Header erzeugt.

        Die Eingaben werden zu einem langen String aneinandergehängt, getrennt durch Windows-Zeilenumbrüche.
        chr(13) & chr(10) sind Carriage Return und LineFeed (oder andersrum?)
        Ein HTML-Zeilenumbruch wäre ein   - Das Script müßte das dann noch umwandeln...

        Gruß, rob

        1. Hallo,

          Ein HTML-Zeilenumbruch wäre ein   - Das Script müßte das dann noch umwandeln...

          Was soll das? Ein HTML-Zeilenumbruch kommt beim <br /> oder nach jedem Blockelement.

          Für diese Aufgabe gibt es doch Tabellen! Das sind doch Tabelarische Daten und sollten genau so behandelt werden.

          Das mit dem header stimmt allerdings warscheinlich schon (habe nicht alles durchgeschaut) Es muss für den E-Mail Client auch ersichtlich sein dass es sich um HTML und nicht um Text handelt.

          Grüße
          Jeena Paradies

          --
          Jeenas Welt in ein paar Sätzen:
          http://www.jeenaparadies.de/artikel/
          1. Was soll das? Ein HTML-Zeilenumbruch kommt beim <br /> oder nach jedem Blockelement.

            Natürlich. Weiß gar nicht, wie ich auf   komme... Macht aber hier keinen Unterschied. Das Script hat gibt kein HTML an den Mailserver. Man müßte die Umbrüche umwandeln.
            PHP bietet hier nl2br(). Gibt es in VBS etwas vergleichbares oder muß man das selber implementieren?

            Für diese Aufgabe gibt es doch Tabellen! Das sind doch Tabelarische Daten und sollten genau so behandelt werden.

            Aber es werden ja keine HTML-Tabellen übergeben. Der zusammengesetzte String enthält nachher nur Text mit Windows-Zeilenumbrüchen, also gar kein HTML. Für eine HTML-Mail ist das ein wenig mager...

            1. Hallo,

              Aber es werden ja keine HTML-Tabellen übergeben. Der zusammengesetzte String enthält nachher nur Text mit Windows-Zeilenumbrüchen, also gar kein HTML. Für eine HTML-Mail ist das ein wenig mager...

              Was will er denn jetzt machen? Ich verstehe nichts mehr.

              Er will doch

              Name:           Jeena Paradies
              Beruf:          Webdesigner
              E-Mail:         zwiebelkuchen@gmx.de
              usw.

              Da ist doch eine Tabelle ideal. Wenn er kein HTML schicken will dann muss er halt so was schreiben:

              Name:           Jeena Paradies\r\n
              usw.

              oder sehe ich das falsch? Ist es nicht so dass die E-Mails die als plaintext verschickt werden "meistens" mit einer monospace Schrift dargestellt werden?

              Grüße
              Jeena Paradies

              --
              Jeenas Welt in ein paar Sätzen:
              http://www.jeenaparadies.de/artikel/
              1. hallo!

                muss kein html mail sein. nur bekomme ich diese abstände ohne html anscheinend nicht hin. oder hast du da ne idee?

                lg

                markus

                1. Hallo,

                  muss kein html mail sein. nur bekomme ich diese abstände ohne html anscheinend nicht hin. oder hast du da ne idee?

                  Wie schon gesagt werden bei plaintext die Leerzeichen auch mitübertragen und wenn es auch als solches deklariert wurde (im header) dann wird es von den meisten E-Mail Clients auch mit einer monospace Schrift angezeigt. Dann sollte es auch keine probleme geben.

                  Grüße
                  Jeena Paradies

                  --
                  Jeenas Welt in ein paar Sätzen:
                  http://www.jeenaparadies.de/artikel/