Email an mehrere Empfänger Frage

  • VB.NET

Es gibt 15 Antworten in diesem Thema. Der letzte Beitrag () ist von MemoAnMichSelbst.

    Email an mehrere Empfänger Frage

    Ich versende mit diesem Code:

    VB.NET-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 = "xxxxxxx"
    7. myCredentials.Password = "xxxxxxx"
    8. Msg.IsBodyHtml = True
    9. Dim mySmtpsvr As New SmtpClient()
    10. mySmtpsvr.Host = "mail.xxxxxxx.de"
    11. mySmtpsvr.Port = 25
    12. mySmtpsvr.UseDefaultCredentials = False
    13. mySmtpsvr.Credentials = myCredentials
    14. Msg.From = New MailAddress("xxxx@xxxxxxx.de")
    15. Msg.Subject = "Betreff: " & nl_betreff.Text
    16. cmd.Connection = con
    17. con.Open()
    18. mydata = cmd.ExecuteReader()
    19. While myData.Read()
    20. Dim zufallzahl As Single
    21. zufallzahl = 100
    22. Dim kdnr2 As Integer = myData("kdnr") + zufallzahl
    23. Dim neuertext As String = nl_inhalt.Text.Replace(vbLf, "<br>")
    24. Msg.Body = "Hier steht dann also so der Text rum..."
    25. Msg.To.Add(myData("email"))
    26. End While
    27. con.Close()
    28. mySmtpsvr.Send(Msg)


    Nun stehen aber alle Empfänger bei ankommender Email als To: mail@fsfw.de, mail.tertote.de, mail.......
    also kann jeder Empfänger sehen an welche Adressen das ging.

    Kann man das beeinflussen ?
    Läuft ja bereits alles durch eine Schleife

    VB.NET-Quellcode

    1. ​While myData.Read()
    2. Dim zufallzahl As Single
    3. zufallzahl = 100
    4. Dim kdnr2 As Integer = myData("kdnr") + zufallzahl
    5. Dim neuertext As String = nl_inhalt.Text.Replace(vbLf, "<br>")
    6. Msg.Body = "Hier steht dann also so der Text rum..."
    7. Msg.To.Add(myData("email"))
    8. End While
    ich denke es gibt msg.bcc.add


    //EDIT
    Rest entfernt

    Du brauchst aber einen TO Adressaten den dann alle sehen können.
    Alternativ kannst du die Mail auch einfach 100 mal versenden (wie ein Newsletter)
    Das ist meine Signatur und sie wird wunderbar sein!
    Ja aber so sieht jeder alle Empfänger. Ich meine du kannst in der Schleife jedesmal den To Empfänger entfernen und neu hinzufügen und dann senden.
    Dann sendest du 100 Mails an einen Empfänger und nicht 1 Mail an 100 Empfänger.
    Das ist meine Signatur und sie wird wunderbar sein!
    Ja in etwa.

    So kannst du zB auch Personenbezogenen Text einsetzen in der Begrüßung zB.
    Wenn das nicht nötig ist, dann erstell einmal die Msg vor der Schleife.
    In der Schleife durchläufst nur noch alle Empfänger und entfernst den alten, fügst einen neuen hinzu und dann sendest du die Mail.


    //Edit:

    Es besteht aber die Gefahr, dass bei so vielen Mails dein Mailprovider denkt das du spamst. Daher genau überlegen. Ich weiß das Newsletter meistens einzeln versendet werden um persönliche Inhalte zu haben, aber man sollte das abklären. Alternativ kannst du die Mail an dich schicken und an alle in BCC.
    Das ist meine Signatur und sie wird wunderbar sein!

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Mono“ ()

    Soderle - Ich habe den Fehler gefunden.
    Er hat die Email erst nach dem Eintragen aller Adressen versendet.
    So geht es einzeln:

    VB.NET-Quellcode

    1. Msg.To.Add(myData("email"))
    2. mySmtpsvr.Send(Msg)<- stand ausserhalb der While Schleife
    3. Msg.To.Clear

    Nun wird bei jedem Empfänger nur seine Email Adresse angezeigt. Ihr seid Super - Danke !

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „thommy1972de“ ()

    IN der Schleife (nicht global) die Message deklarieren...
    Dann füllen und senden...
    Du machst ja alles außerhalb der Schleife.
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    ... Nun solltest es selber wissen. :'D
    Ich fülle in der While Schleife Msg.Body mit Inhalt (z.b. Email Nachname, Vorname usw..) dann sende ich sie ab.

    VB.NET-Quellcode

    1. Dim myCredentials As New System.Net.NetworkCredential
    2. Dim con As New MySqlConnection(My.Settings.connection)
    3. Dim cmd As New MySqlCommand("SELECT * FROM kunden WHERE email != '' AND gesperrt = '0' AND newsletter = '1'")
    4. Dim myData As MySqlDataReader
    5. myCredentials.UserName = "xxxxxxx"
    6. myCredentials.Password = "xxxxxxx"
    7. Msg.IsBodyHtml = True
    8. Dim mySmtpsvr As New SmtpClient()
    9. mySmtpsvr.Host = "mail.xxxxxxx.de"
    10. mySmtpsvr.Port = 25
    11. mySmtpsvr.UseDefaultCredentials = False
    12. mySmtpsvr.Credentials = myCredentials
    13. Msg.From = New MailAddress("xxxx@xxxxxxx.de")
    14. Msg.Subject = "Betreff: " & nl_betreff.Text


    Das muss ja nicht in der Schleife stehen
    Hierfür braucht es eine große Menge an EMails.
    Newsletter Tools arbeiten auf die gleiche Weise.
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    ... Nun solltest es selber wissen. :'D