Inhalt mehrerer TextBoxen an Outlook bzw. Mail Client übergeben

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 10 Antworten in diesem Thema. Der letzte Beitrag () ist von Blackki.

    Inhalt mehrerer TextBoxen an Outlook bzw. Mail Client übergeben

    Hallo zusammen,

    ich habe folgendes Problem:
    Auf einer Windows Form habe ich 4 Textboxen. In diese Textboxen möchte ich Variablen eintragen.
    meinetwegen in die erste Box "Hallo", in die zweite Box "Test" in die dritte Box "wie gehts?" und in die vierte Box "ganz gut" (sind jetzt nur irgendwelche Beispiele)
    Ich habe außerdem einen Button (button1). Wenn auf diesen Button geklickt wird soll das Standard E-Mail prgramm geöffnet werden, der Empfänger automatisch eingegeben werden,
    der Betreff soll Textbox1 sein und der Inhalt der anderen Textboxen sollen untereinander (mit Absatz) im Body stehen also in etwa so:
    Empfänger: xy@z.de
    Betreff: Hallo
    Body: Test
    wie gehts?
    ganz gut

    Ich habe es bereits mit Imports.System.Microsoft.office.interop probiert aber das is tja dann nur für Outlook und ich muss die genaue Version definieren.
    Allerdings will ich das allgemein halten.

    Momentan versuche ich es damit:

    Visual Basic-Quellcode

    1. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    2. Process.Start("mailto:mail@example.com?subject=" & TextBox1.Text)
    3. End Sub


    Hier wird der Empfänge rund der Betreff eingetragen also so wie es auch sein sollte aber ich hab absolut keine Ahnung und keinen Ansatz wie ich das dann an den Body übergeben soll.
    mit diesem hier funktioniert es nicht;

    Visual Basic-Quellcode

    1. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    2. Process.Start("mailto:mail@example.com?subject=" & TextBox1.Text & ?body= & TextBox2.Text)
    3. End Sub



    Ich bin für jeden Hinweis oder Lösungsvorschlag wirklich sehr dankbar!
    Das MailTo funktioniert unterschiedlich.
    Je nachdem, welcher Default-Mail-Client verwendet wird.

    Aber Subject und Body sollten überall funktionieren.

    JackCimberly schrieb:

    Process.Start("mailto:mail@example.com?subject=" & TextBox1.Text & "?body=" & TextBox2.Text)

    Der Ansatz ist schon gar nicht schlecht, lediglich das zweite ​? sollte ein ​& sein.
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --
    Super! Das hat funktioniert!
    Jetzt habe ich aber noch ein kleines Problem:
    Wenn ich das jetzt so mache:

    Visual Basic-Quellcode

    1. Process.Start("mailto:mail@example.com?subject=" & TextBox1.Text & "&body=" & TextBox2.Text)

    schreibt er mir das alles so wie ich möcht ein den Body.
    Allerdings habe ich ja noch mehrere TextBoxen. Wenn ich das so "fortführe" also

    Visual Basic-Quellcode

    1. Process.Start("mailto:mail@example.com?subject=" & TextBox1.Text & "&body=" & TextBox2.Text & TextBox3.Text)

    schreibt er mir alles in eine Zeile. Wie kann ich das mit den Zeilenumbrüchen machen?

    mit vbNewLine gehts leide rnicht :S

    Blackki schrieb:

    mit vbNewLine gehts leide rnicht
    Dann probiers mit vbCrLf.
    Und wenn der Empfänger Outlook ist, kann es sein, dass "unnötige Zeilenumbrüche* entfernt werden.
    Das wird aber vom Mailclient angezeigt.
    In dem Fall hilft 2x vbCrLf zu senden.
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --
    habe es jetzt einmal so:

    Visual Basic-Quellcode

    1. Process.Start("mailto:mail@example.com?subject=" & TextBox1.Text & "&body=" & TextBox2.Text & vbCrLf & TextBox3.Text)


    und so gemacht:

    Visual Basic-Quellcode

    1. Process.Start("mailto:mail@example.com?subject=" & TextBox1.Text & "&body=" & TextBox2.Text & vbCrLf & vbCrLf & TextBox3.Text)


    geht aber leider beides nicht, schreibt immer noch in eine Zeile
    Hey Super das hat funktioniert! 1000 Dank euch!! Für alle die es interessiert wie ich es gelöst habe:


    Visual Basic-Quellcode

    1. Process.Start("mailto:mail@example.com?subject=" & TextBox1.Text & "&body=" & TextBox2.Text & "%0A" & TextBox3.Text)


    Outlook übernimmt es Problemlos.
    Jetzt noch das mit der RichtextBox testen und wenn dann alles klappt bin ich für heute glücklich und zufrieden :)