Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

VB - Mail Attachments - Anhang mittels Listbox

Frage Entwicklung Visual Studio

Mitglied: Kurdirektor

Kurdirektor (Level 1) - Jetzt verbinden

16.02.2015, aktualisiert 13:33 Uhr, 595 Aufrufe, 4 Kommentare

Hallo,

ich habe folgenden Code geschrieben...

Dieser funktioniert soweit auch ganz gut aber leider nur dann wenn auch alle aufgeführten Bereiche der Listbox mit "Attachment links" gefüllt sind.
Ein versenden von weniger, als die im Programm vorgegebenen Attachments ist nicht möglich. Das Programm wird dann beendet mit dem Hinweis das ein leerer Eintrag in ListBox1.Items.Item(x.1) nicht erlaubt ist.

Kennt jemand eine Möglichkeit wie man das Problem lösen könnte?

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

Dim Msg As New MailMessage
Dim myCredentials As New System.Net.NetworkCredential

myCredentials.UserName = "XXXXXXXX"
myCredentials.Password = "XXXXX"
Msg.IsBodyHtml = False

Dim mySmtpsvr As New SmtpClient()

mySmtpsvr.Host = "smtp.gmx.net"
mySmtpsvr.Port = 587
mySmtpsvr.UseDefaultCredentials = False
mySmtpsvr.Credentials = myCredentials

Msg.From = New MailAddress("XXXXXXXX")
Msg.To.Add(TextBox2.Text)
Msg.Subject = TextBox1.Text
Msg.Body = TextBox4.Text + ";" + MA9 + ";" + MA10 + ";" + MA11 + ";" + MA12 + ";" + MA13 + ";" + MA16 + ";" + MA15 + ";" + MA14 + ";" + MA1 + ";" + MA2 + ";" + MA3 + ";" + MA4 + ";" + MA7 + ";" + MA6 + ";" + MA5 + ";" + MA8 + ";" + TextBox3.Text


Dim Attach As Attachment
Attach = New System.Net.Mail.Attachment(ListBox1.Items.Item(0.1))
If ListBox1.Items.Item(0.1).ToString <> "" Then Msg.Attachments.Add(Attach)

Dim Attach2 As Attachment
Attach2 = New System.Net.Mail.Attachment(ListBox1.Items.Item(1.1))
If ListBox1.Items.Item(1.1).ToString <> "" Then Msg.Attachments.Add(Attach2)

Dim Attach3 As Attachment
Attach3 = New System.Net.Mail.Attachment(ListBox1.Items.Item(2.1))
If ListBox1.Items.Item(2.1).ToString <> "" Then Msg.Attachments.Add(Attach3)

Dim Attach4 As Attachment
Attach4 = New System.Net.Mail.Attachment(ListBox1.Items.Item(3.1))
If ListBox1.Items.Item(3.1).ToString <> "" Then Msg.Attachments.Add(Attach4)

Dim Attach5 As Attachment
Attach5 = New System.Net.Mail.Attachment(ListBox1.Items.Item(4.1))
If ListBox1.Items.Item(4.1).ToString <> "" Then Msg.Attachments.Add(Attach5)

Dim Attach6 As Attachment
Attach6 = New System.Net.Mail.Attachment(ListBox1.Items.Item(5.1))
If ListBox1.Items.Item(5.1).ToString <> "" Then Msg.Attachments.Add(Attach6)

Dim Attach7 As Attachment
Attach7 = New System.Net.Mail.Attachment(ListBox1.Items.Item(6.1))
If ListBox1.Items.Item(6.1).ToString <> "" Then Msg.Attachments.Add(Attach7)

Dim Attach8 As Attachment
Attach8 = New System.Net.Mail.Attachment(ListBox1.Items.Item(7.1))
If ListBox1.Items.Item(7.1).ToString <> "" Then Msg.Attachments.Add(Attach8)

Dim Attach9 As Attachment
Attach9 = New System.Net.Mail.Attachment(ListBox1.Items.Item(8.1))
If ListBox1.Items.Item(8.1).ToString <> "" Then Msg.Attachments.Add(Attach9)

Dim Attach10 As Attachment
Attach10 = New System.Net.Mail.Attachment(ListBox1.Items.Item(9.1))
If ListBox1.Items.Item(9.1).ToString <> "" Then Msg.Attachments.Add(Attach10)

mySmtpsvr.Send(Msg)
MsgBox("Erfolgreich ausgeführt.", MsgBoxStyle.Information, Title:="Information")

End Sub
Mitglied: emeriks
LÖSUNG 16.02.2015, aktualisiert um 13:44 Uhr
Hi,
ohne dass ich mich jetzt konkret auf die SMTP-Sache beziehe:
Müsset das nicht so ausehen?

01.
If ListBox1.Items.Item(9.1).ToString <> "" Then  
02.
  Dim Attach10 As Attachment 
03.
  Attach10 = New System.Net.Mail.Attachment(ListBox1.Items.Item(9.1)) 
04.
  Msg.Attachments.Add(Attach10) 
05.
end if
Oder gleich:
01.
for each xItem in ListBox1.Items 
02.
  If xItem.ToString <> "" Then  
03.
    Dim A As Attachment 
04.
    A = New System.Net.Mail.Attachment(xItem) 
05.
    Msg.Attachments.Add(A) 
06.
  end if 
07.
next
E.
Bitte warten ..
Mitglied: Kurdirektor
16.02.2015 um 12:59 Uhr
Da kommt immer noch eine Fehlermeldung wenn in der Listbox kein Eintrag vorhanden ist:


01. If ListBox1.Items.Item(9.1).ToString <> "" Then // Fehlerausgabe: InvalidArgument=Value mit dem Wert 0 ist für index ungültig.

02. Dim Attach10 As Attachment

03. Attach10 = New System.Net.Mail.Attachment(ListBox1.Items.Item(9.1))

04. Msg.Attachments.Add(Attach10)

05. end if
Bitte warten ..
Mitglied: 114757
LÖSUNG 16.02.2015, aktualisiert um 13:33 Uhr
Item(9.1)
das kann ja nicht funktionieren! Das ist ja gar kein Integer-Wert als Parameter

Mach das mit der Foreach-Schleife von E. . Denn wenn du keine Elemente in deiner Listbox hast wird dein Code sowieso in eine Exception laufen !
Das einzelne definieren und Abfragen ist absoluter Anfänger Codemist ...

Gruß jodel
Bitte warten ..
Mitglied: Kurdirektor
16.02.2015 um 13:33 Uhr
Richtig, Anfänger ja

das mir der Foreeach SChleife hat funktioniert. Danke

Gelöst
Bitte warten ..
Neuester Wissensbeitrag
Festplatten, SSD, Raid

12TB written pro SSD in 2 Jahren mit RAID5 auf Hyper-VServer

Erfahrungsbericht von Lochkartenstanzer zum Thema Festplatten, SSD, Raid ...

Ähnliche Inhalte
Exchange Server
gelöst Sender von einer Mail mit einem Anhang suchen (3)

Frage von TheHawk zum Thema Exchange Server ...

E-Mail
E-Mail in einen Ordner schicken, Anhang extrahieren (4)

Frage von Yannosch zum Thema E-Mail ...

E-Mail
gelöst Plesk 17 - E-Mail zurückgestellt in Warteschlange (7)

Frage von ZeldaFreak zum Thema E-Mail ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (34)

Frage von patz223 zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (21)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Viren und Trojaner
Aufgepasst: Neue Ransomware Goldeneye verbreitet sich rasant (20)

Link von Penny.Cilin zum Thema Viren und Trojaner ...