Email HTML an mehrere Emfpänger

  • VB.NET

Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von thommy1972de.

    Email HTML an mehrere Emfpänger

    Hallo.
    Ich bin gerade an einem einfachen Newsletter Skript.
    Dieses soll nach Eingabe einer Betreff und Inhalt-Textbox an mehrere MySQL Empfänger versenden.
    Mit einem Empfänger geht das soweit aber sobald 2 Empfänger vorhanden sind kommt Fehler.
    Bisheriger Code:

    VB.NET-Quellcode

    1. Try
    2. Msg.From = New MailAddress("Mein Name usw... <xxxx@xxxx.de>") ' Meine Email wird angegeben !
    3. Dim con As New MySqlConnection(My.Settings.connection)
    4. Dim cmd As New MySqlCommand("SELECT * FROM kunden WHERE gesperrt = '0' AND newsletter = '1'")
    5. Dim reader As MySqlDataReader
    6. cmd.Connection = con
    7. con.Open()
    8. reader = cmd.ExecuteReader()
    9. ' Schleife
    10. Do While reader.Read()
    11. ' Emails hinzufügen
    12. Msg.To.Add(reader("email") & ", ")
    13. Loop
    14. reader.Close()
    15. con.Close()
    16. ' Text Zeilenumbrüche in <BR> umwandeln
    17. Dim textneu As String = nl_inhalt.Text.Replace(vbLf, "<br>")
    18. ' Betreffzeile aus Textbox
    19. Msg.Subject = nl_betreff.Text
    20. ' Umgewandelte Message aus Textbox 2
    21. Msg.Body = textneu
    22. ' Und ab gehts
    23. mySmtpsrv.Send(Msg)
    24. MessageBox.Show("E-Mail erfolgreich gesendet.")
    25. Catch ex As Exception
    26. MsgBox(Err.Number & ex.Message & ex.StackTrace.ToString) 'Wenn ein Fehler auftritt wird dieser angezeigt
    27. End Try


    Es liegt wohl offenbar am Einfügen mehrerer Email Adressen wo offenbar das format nicht stimmt ?
    Fehlermeldung:
    Die angegebene Zeichenfolge besitzt nicht das für eine E-Mail Addresse erforderliche Format

    *Topic verschoben, VB-Tag eingefügt*

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Marcus Gräfe“ ()

    Ja ich habe mit messagebox.show(reader("email")) versucht und da gibt er mir die korrekte Email Adressen auch nacheinander aus.
    Ich denke es hängt an den Anführungszeichen da wohl die Email als "em@ail.de" angeben werden müssen und im reader ja nur em@ail.de ohne Anführungszeichen rauskommt.
    Ebenso bringt xxx.to.add("" & reader("email") & "") nichts da sich die AZ wohl irgendwie gegenseitig wieder aufheben/blockieren / was weiss ich ^^
    Ich würd' mal versuchen:

    VB.NET-Quellcode

    1. Do While reader.Read()
    2. ' Emails hinzufügen
    3. Dim eMailAdress as string= Reader("email")
    4. Msg.To.Add(eMailAdress)
    5. Loop

    Dann auf Zeile #4 einen Breakpoint und schaune, was denn der Inhalt von eMailAdress ist.
    Also ich sag`s jetzt wirklich nur ungern aber ich habe vor ein paar Wochen mein Passwort geändert und jetzt natürlich das alte genommen :(
    Mit dem neuen Pass geht`s natürlich - Also lag der Fehler wohl an meinem Alter ^^

    Falls den Code jemand gebrauchen kann:

    Quellcode

    1. Dim Msg As New MailMessage
    2. Dim myCredentials As New System.Net.NetworkCredential
    3. Dim con As New MySqlConnection(My.Settings.connection)
    4. Dim cmd As New MySqlCommand("SELECT * FROM kunden WHERE email != '' AND gesperrt = '0' AND newsletter = '1'")
    5. Dim myData As MySqlDataReader
    6. myCredentials.UserName = "DEIN BENUTZERNAME"
    7. myCredentials.Password = "DEIN PASSWORT"
    8. Msg.IsBodyHtml = True ' HTML ansonsten FALSE für Text-Email
    9. Dim mySmtpsvr As New SmtpClient()
    10. mySmtpsvr.Host = "SMTP SERVER ADRESSE"
    11. mySmtpsvr.Port = 25
    12. mySmtpsvr.UseDefaultCredentials = False
    13. mySmtpsvr.Credentials = myCredentials
    14. Msg.From = New MailAddress("ABSENDER EMAIL ADRESSE")
    15. Msg.Subject = "Betreff: " & nl_betreff.Text
    16. cmd.Connection = con
    17. con.Open()
    18. mydata = cmd.ExecuteReader()
    19. While myData.Read()
    20. Msg.Body = "DEIN INHALT DER EMAIL"
    21. Msg.To.Add(myData("email"))
    22. End While
    23. con.Close()
    24. mySmtpsvr.Send(Msg)
    25. MessageBox.Show("Emails wurden verschickt !")