E-Mail an mehrere E-Mail Addressen aus Listbox senden

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

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von ​Thunderbolt.

    E-Mail an mehrere E-Mail Addressen aus Listbox senden

    Wie kann man eine E-Mail an mehrere E-Mail Addressen aus einer Listbox senden?

    VB.NET-Quellcode

    1. Dim emsg As New MailMessage
    2. Try
    3. For i As Integer = 0 To ListBox1.Items.Count - 1
    4. emsg.From = New MailAddress(TextBox1.Text)
    5. emsg.Subject = TextBox3.Text
    6. emsg.Body = RichTextBox1.Text
    7. emsg.To.Add(i)
    8. Dim smtp As New SmtpClient(ComboBox1.Text)
    9. smtp.Port = 587
    10. smtp.EnableSsl = True
    11. smtp.Credentials = New System.Net.NetworkCredential(TextBox1.Text, TextBox2.Text)
    12. smtp.Send(emsg)
    13. Next
    14. Catch ex As Exception
    15. MsgBox("Fehler!")
    16. End Try


    Was mache ich falsch?
    Moin,

    schaue Dir den Code mal an. Du fügst der To-Eigenschaft einen Integer hinzu, nämlich Dein i.
    Du willst jedoch ein Item zu dieser Collection hinzufügen, denn das ist ja der Typ, also musst Du ein ListBoxItem mit Indizierung ansprechen. Dabei ist dann i Dein Index. Nicht vergessen dann noch in eine MailAddress umzuformen bzw. eine mit dem Item zu instanziieren!

    Außerdem solltest Du mal die Leerzeilen rausmachen und Deinen Controls gescheite, guidelinekonforme Namen geben, da Du Dich sonst selbst irgendwann im Projekt nicht mehr auskennst etc.
    Das Catchen sollte zudem auch die eigentliche Exception angeben, da Du sonst einfach immer "Fehler" angezeigt bekommst.

    MsgBox kommt btw aus VB6 und sollte mit MessageBox.Show ersetzt werden.

    Grüße
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
    So ?


    VB.NET-Quellcode

    1. Dim emsg As New MailMessage
    2. Try
    3. For Each items In ListBox1.Items
    4. emsg.From = New MailAddress(TextBox1.Text)
    5. emsg.Subject = TextBox3.Text
    6. emsg.Body = RichTextBox1.Text
    7. emsg.To.Add(items.ToString)
    8. Dim smtp As New SmtpClient(ComboBox1.Text)
    9. smtp.Port = 587
    10. smtp.EnableSsl = True
    11. smtp.Credentials = New System.Net.NetworkCredential(TextBox1.Text, TextBox2.Text)
    12. smtp.Send(emsg)
    13. Next
    14. Catch ex As Exception
    15. MessageBox.Show("Fehler!")
    16. End Try
    Moin,

    nein. Schalte Option Strict auf On und probiere es halt aus. Du musst eine MailAddress angeben, das ist eine MailAddressCollection.

    Grüße
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
    Und ich habe noch Lesestoff für dich:
    • https://www.vb-paradise.de/index.php/Thread/61310-Böses-aus-VB6-VB2003-und-die-richtigen-VB-NET-Alternativen/
    • https://www.vb-paradise.de/index.php/Thread/73363-TryCatch-ist-ein-heißes-Eisen/
    Mit freundlichen Grüßen,
    Thunderbolt