Gateway_man Geschrieben 15. April 2009 Geschrieben 15. April 2009 hi, habe eine combobox, deren inhalte per button event in eine Textbox übertragen werden. Jedoch soll für jedes einzelne item eine For each schleife laufen, da jeder eintrag individuell sein soll. Jemand ne idee? Ich hab es versucht mit combobox1.items.contains ("") Da jeder der einträge ein bestimmtes Zeichen beinhaltet das jedoch jeder hat. Jedoch wird das so mit der For each Schleife nicht funktionieren. mfg Zitieren
Klotzkopp Geschrieben 15. April 2009 Geschrieben 15. April 2009 Jedoch soll für jedes einzelne item eine For each schleife laufen, da jeder eintrag individuell sein soll.Verstehe ich nicht. Willst du Zeichen für Zeichen kopieren? Was meinst du mit "individuell"? Gib doch mal ein Beispiel, was in der Combobox steht, und was in der Textbox stehen soll. Zitieren
Gateway_man Geschrieben 15. April 2009 Autor Geschrieben 15. April 2009 (bearbeitet) Bei dem inhalt der Combobox handelt es sich um E-mail Adressen die aus dem vorhergehenden form aus einem Datagridview per selektierung hinzugefügt wurden. Nur habe ich es damals so gemacht das ich alle sleketierten e-mails genommen habe und diese nur mit einem komma getrennt der Textbox die als Empfänger dient hinzugefügt habe. Das hat den großen Nachteil, das alle, dennen ich eine E-mail schicke auch sehen können wer noch eine bekommen hat. Nun wollte ich es ändern und wollte, da ja bekanntlich jede E-mail Adresse ein @ Zeichen beinhaltet, contains benutzen, um alle relevanten Einträge der Combobox getrennt eine E-Mail zukommen lassen. Dies wollte ich dann mit einer For Each schleife realisieren, was grad nicht so klappt :-( Bearbeitet 15. April 2009 von Gateway_man Zitieren
Klotzkopp Geschrieben 15. April 2009 Geschrieben 15. April 2009 Das hat den großen Nachteil, das alle, dennen ich eine E-mail schicke auch sehen können wer noch eine bekommen hat.Dann schreib die Empfänger doch einfach ins BCC-Feld. Nun wollte ich es ändern und wollte, da ja bekanntlich jede E-mail Adresse ein @ Zeichen beinhaltet, contains benutzen, um alle relevanten Einträge der Combobox getrennt eine E-Mail zukommen lassen.Wenn sowieso nur E-Mail-Adressen drin stehen, bringt dir doch eine Prüfung auf @ rein gar nichts. Der springende Punkt ist, dass du die Adressen einzeln übertragen musst, um dann dazwischen etwas anderes zu tun (nämlich die Mail zu versenden). Da ist es ziemlich egal, welche Art von Schleife du benutzt. Entscheidend ist, was im Schleifenrumpf passiert. Zitieren
Gateway_man Geschrieben 15. April 2009 Autor Geschrieben 15. April 2009 Es würde wie folgt aussehn: For each (eben hier liegt mein problem da ich nicht weiß wie ich das mit der combobox anstellen soll, das er mir jeden index durchloopt und den jeweiligen value übernimmt) --------------------------------------------------------------------- 'Der Rest ist mir durchaus bekannt Dim mail As New Net.Mail.MailMessage() mail.From = New Net.Mail.MailAddress("Absender") mail.To.Add(TextBox2.Text) mail.Subject = TextBox1.Text mail.Body = RichTextBox1.Text mail.IsBodyHtml = True If low.Checked = True Then mail.Priority = Net.Mail.MailPriority.Low ElseIf Normal.Checked = True Then mail.Priority = Net.Mail.MailPriority.Normal ElseIf High.Checked = True Then mail.Priority = Net.Mail.MailPriority.High End If Try mail.Attachments.Add(New Net.Mail.Attachment(TextBox3.Text)) Catch End Try Dim smtp As New Net.Mail.SmtpClient("SMTP Adresse") smtp.Credentials = New System.Net.NetworkCredential("Username", "PW") smtp.Send(mail) mail.Dispose() smtp = Nothing Next MessageBox.Show("Mails sind versendet", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information) Zitieren
Klotzkopp Geschrieben 15. April 2009 Geschrieben 15. April 2009 For each bla in DeineComboBox.Items ... mail.To.Add(bla.ToString())[/CODE] Vorbehaltlich mir unbekannter Eigenschaften der VB.NET-Syntax sollte das doch so oder so ähnlich aussehen. Zitieren
DominikJ Geschrieben 15. April 2009 Geschrieben 15. April 2009 (bearbeitet) Möglichkeit 1 von Klotzkopp bereits vorgeschlagen BCC nutzen: mail.to.add("absender") mail.bcc.add(TextBox2.Text) 2 Möglichkeit Schleife durch Combo Box nutzen: For Each item As String In ComboBox1.Items MsgBox(item) 'deine mail routine Next Bearbeitet 15. April 2009 von DominikJ Da war er wieder schneller :D Zitieren
Gateway_man Geschrieben 15. April 2009 Autor Geschrieben 15. April 2009 (bearbeitet) habt dank ihr beide hier nochmal der vollständige funktionierende code: (Die prioritäten hab ich mal raus da es damit noch einige probleme gibt) For Each item As String In ComboBox1.Items TextBox2.Text = item Dim mail As New Net.Mail.MailMessage() mail.From = New Net.Mail.MailAddress("ABSENDER") mail.To.Add(TextBox2.Text) mail.Subject = TextBox1.Text mail.Body = RichTextBox1.Text mail.IsBodyHtml = True 'If low.Checked = True Then ' mail.Priority = Net.Mail.MailPriority.Low 'ElseIf Normal.Checked = True Then ' mail.Priority = Net.Mail.MailPriority.Normal 'ElseIf High.Checked = True Then ' mail.Priority = Net.Mail.MailPriority.High 'End If Try mail.Attachments.Add(New Net.Mail.Attachment(TextBox3.Text)) Catch End Try Dim smtp As New Net.Mail.SmtpClient("mail.gmx.net") smtp.Credentials = New System.Net.NetworkCredential("USER", "PASSWORD") smtp.Send(mail) mail.Dispose() smtp = Nothing Next MessageBox.Show("Mails sind versendet", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information) Bearbeitet 15. April 2009 von Klotzkopp Persönliche Daten und Zugangsdaten entfernt Zitieren
DominikJ Geschrieben 15. April 2009 Geschrieben 15. April 2009 Deine Daten rausnhemen ... Und wieso nun noch TextBox2 verwenden? Zitieren
Gateway_man Geschrieben 15. April 2009 Autor Geschrieben 15. April 2009 Deine Daten rausnhemen ... sind doch draußen ?!?!?! Warum ich die Textbox2 noch benutze? Habs noch nicht geändert da hab ich zuvor die Empänger übertragen. Zitieren
Klotzkopp Geschrieben 15. April 2009 Geschrieben 15. April 2009 sind doch draußen ?!?!?!Wenn du dir die Zeiten genau ansiehst, stellst du fest, dass ich deine Mail-Zugangsdaten und die dazugehörige Mailadresse entfernt habe, nachdem DominikJ so nett war, darauf hinzuweisen. Hätte er das nicht getan, würden die vermutlich jetzt noch da stehen. Statt alternierender Satzzeichen wäre hier vielleicht ein "Danke" angebracht. Zitieren
Gateway_man Geschrieben 15. April 2009 Autor Geschrieben 15. April 2009 (bearbeitet) Sry danke euch für eure schnelle reaktion :-) wusste ich nicht :floet: hoffen wir mal das hier keiner mist anstellt :old Danke euch beiden Bearbeitet 15. April 2009 von Gateway_man Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.