none
TextBoxen alle zusammen per Mail RRS feed

  • Frage

  • Hallo liebe Community,

    Und zwar habe ich ein Formular erstellt. Unten ist ein Button zum Senden per Mail das funktioniert auch alles super.
    Nur suche ich jetzt eine möglichkeit evt alle TextBoxen und Checkboxen schön sortiert und mit Zeilenumbruch ausgeben zu lassen
    in der Mail. Ich habe zwar eine sehr einfache Lösung ala

    MailSenden.Body = TextBox1.Text + blabla.Text + ....;

    aber ich denke das ist nicht die tollste. Habt ihr eine andere Möglichkeit? Ich bin noch Anfänger, hab schon gegoogelt aber find irgendwie nichts was
    darauf passt.

     

    Viele liebe Grüße

    Cesa

    Dienstag, 28. Dezember 2010 18:12

Antworten

  • Hi,

    Nur suche ich jetzt eine möglichkeit evt alle TextBoxen und Checkboxen schön sortiert und mit Zeilenumbruch ausgeben zu lassen
    in der Mail. Ich habe zwar eine sehr einfache Lösung ala

    wenn die Anzahl der Textboxen bekannt ist (bzw. sich die Anzahl und die Reihenfolge nicht einfach mal so ändert), könntest Du einfach ein Template bauen und das dann mit den Werten füllen.

    Das Template könnte dann bspw. so aussehen:

     

    Name   : {0}
    Adresse  : {1}
    Telefon  : {2}
    Email   : {3}
    Newsletter: {4}
    Das Template kann bspw. als Resource, als Textdatei, in einer Datenbank, ... hinterlegt werden. Füllen kannst Du das dann so:

    Dim MailBody As String = String.Format( <MailTemplate>, Name.Text, Adresse.Text, Telefon.Text, Email.Text, Newsletter.Checked.ToString() )

     

    (Name, Adresse, ...) sind dann Textboxen, Newsletter eine Checkbox.

    Das klappt natürlich auch mit HTML Mails, das Template muss dann halt den HTML Code (bspw. für eine Tabelle) beinhalten. Die restliche Vorgehensweise ist identisch.

    BTW: Der Editor hier geht mir grade wieder aufn Keks :( Und weil das dämliche Teil leider alle meine Versuche, das Template ordentlich darzustellen, zunichte macht, musst Du dir es leider selbst vorstellen.

     


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community
    Dienstag, 28. Dezember 2010 19:21
    Moderator
  • Hi,

    Dim Template As String
        Template = System.IO.File.ReadAllText( "X:\Ordner\Template.txt" )

    Dim MailBody As String
        MailBody = String.Format( Template, kname.Text, xyz.Text, ... )

    Die Parameteranzahl muss dabei dann passen.

     


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community
    Mittwoch, 19. Januar 2011 15:41
    Moderator

Alle Antworten

  • Hi,

    Nur suche ich jetzt eine möglichkeit evt alle TextBoxen und Checkboxen schön sortiert und mit Zeilenumbruch ausgeben zu lassen
    in der Mail. Ich habe zwar eine sehr einfache Lösung ala

    wenn die Anzahl der Textboxen bekannt ist (bzw. sich die Anzahl und die Reihenfolge nicht einfach mal so ändert), könntest Du einfach ein Template bauen und das dann mit den Werten füllen.

    Das Template könnte dann bspw. so aussehen:

     

    Name   : {0}
    Adresse  : {1}
    Telefon  : {2}
    Email   : {3}
    Newsletter: {4}
    Das Template kann bspw. als Resource, als Textdatei, in einer Datenbank, ... hinterlegt werden. Füllen kannst Du das dann so:

    Dim MailBody As String = String.Format( <MailTemplate>, Name.Text, Adresse.Text, Telefon.Text, Email.Text, Newsletter.Checked.ToString() )

     

    (Name, Adresse, ...) sind dann Textboxen, Newsletter eine Checkbox.

    Das klappt natürlich auch mit HTML Mails, das Template muss dann halt den HTML Code (bspw. für eine Tabelle) beinhalten. Die restliche Vorgehensweise ist identisch.

    BTW: Der Editor hier geht mir grade wieder aufn Keks :( Und weil das dämliche Teil leider alle meine Versuche, das Template ordentlich darzustellen, zunichte macht, musst Du dir es leider selbst vorstellen.

     


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community
    Dienstag, 28. Dezember 2010 19:21
    Moderator
  • Ich danke dir für deine schnelle Antwort. Das hab ich soweit verstanden und ist auch eine super Lösung. Könntest du nur als Code Beispiel das ganze in C# posten ?

    Die Anzahl und Reihenfolge ist fix und bleibt es auch. Das heisst aber nicht ich muss jetzt den TextBoxen usw eine Feste Zahl zuweisen ? Oder ?

    Dienstag, 28. Dezember 2010 21:59
  • Hi,
    Könntest du nur als Code Beispiel das ganze in C# posten ?

    http://converter.telerik.com/

    Aber die eine Zeile (die sich im übrigens nur durch zwei einzelne Worte unterscheidet) sollte man auch so übersetzen können. Ab = ... ist eh alles identisch.

    Die Anzahl und Reihenfolge ist fix und bleibt es auch. Das heisst aber nicht ich muss jetzt den TextBoxen usw eine Feste Zahl zuweisen ? Oder ?

    Nö. Die Parameter {0}, {1}, ... werden entsprechen der Reihenfolge der Übergabewerte ersetzt. Einfach mal ausprobieren und die Doku zu String.Format lesen. Dann sollte das klar sein.

     


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community
    Dienstag, 28. Dezember 2010 22:11
    Moderator
  • Sry das ich jetzt das Thema nochmal aufgreife aber ich komm nich wirklich weiter. Ich habe jetz ein Template in einer txt Datei erstellt das

    sieht wie folgt aus:

     

    Herr {2} Frau {3}    Geburtsdatum: {4}

    Name:     {5}    Vorname {6}
    Straße    {7}    Nr:    {8}
    PLZ:    {9}    Ort:    {10}

    Rückrufnummer:     {11}
    Mobilfunk:    {12}

     

    natürlich oben bei 0 beginnend. Nun will ich drauf zugreifen weiss aber nich wirklich wie ich das anstellen soll. Mit dem Befehl oben klappt das nich so ganz

    string MailBody = string.Format("Template?",kname.Text,geburtsdatum.Text);
    

    so gehts auf jedenfall nicht. Ich bin noch recht neu :)

     

    Danke trotzdem schonmal

    Mittwoch, 19. Januar 2011 15:03
  • Hi,

    Dim Template As String
        Template = System.IO.File.ReadAllText( "X:\Ordner\Template.txt" )

    Dim MailBody As String
        MailBody = String.Format( Template, kname.Text, xyz.Text, ... )

    Die Parameteranzahl muss dabei dann passen.

     


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community
    Mittwoch, 19. Januar 2011 15:41
    Moderator