Как искать файлы и прикреплять их к электронной почте - VB.NE
У меня есть CheckedListbox (импортированный из базы данных mysql), в котором перечислены все мои папки, где хранятся мои файлы. И то, что мне нужно сделать, это для каждого отмеченного элемента в контрольном списке, чтобы найти папку, а затем прикрепить файл из этой папки к Почте.
Что я сделал, так это создал электронное письмо и отправил его только с одним вложением. Просто с надписью: "e_mail. Вложения. Добавлять". Почта будет сгенерирована, и найденный файл будет прикреплен и отправлен.
Но когда я делаю это в каждом цикле FOR, то ни один файл не будет выбран и добавлен в мою почту. Почта будет сгенерирована и отправлена без каких-либо ошибок, но вложенных файлов нет.
Private Sub SendMail() Dim Smtp_Server As New SmtpClient Dim e_mail As New MailMessage() Smtp_Server.UseDefaultCredentials = False Smtp_Server.Credentials = New Net.NetworkCredential("MAIL", "PASS") Smtp_Server.Port = 587 Smtp_Server.EnableSsl = True Smtp_Server.DeliveryMethod = SmtpDeliveryMethod.Network Smtp_Server.Host = "HOST" If MonthTextBox.Text = "" Or MonthTextBox.ForeColor = Color.Silver Then MsgBox("Input month please", Title:="MO Text Box") Else Dim MOTextValue As String = MonthTextBox.Text Dim nowYear As Integer = Date.Now.Year For Each itemchecked As DataRowView In CheckedListBoxWO.CheckedItems Dim File_path As String = "C:\Test\" & itemchecked.Item(1) & "\" & nowYear & "\" & MOTextValue & "\" Dim File_Name As String = Dir("C:\Test\" & itemchecked.Item(1) & "\" & nowYear & "\" & MOTextValue & "\File " & MOTextValue & "*.xlsx") Dim attachmentFile As Net.Mail.Attachment = New Net.Mail.Attachment(File_path & File_Name) e_mail.Attachments.Add(attachmentFile) Next Dim sb As New System.Text.StringBuilder sb.AppendLine("Hello,<br />") sb.AppendLine("<br />") sb.AppendLine("Test Attachment,<br />") sb.AppendLine("<br />") sb.AppendLine("------------------------------------------<br />") e_mail.From = New MailAddress("MY MAIL") e_mail.To.Add("EMAIL") e_mail.Subject = ("TESTFILE - " & MOTextValue & "") e_mail.SubjectEncoding = System.Text.Encoding.UTF8 e_mail.IsBodyHtml = True e_mail.Priority = MailPriority.Normal e_mail.Body = sb.ToString() e_mail.BodyEncoding = System.Text.Encoding.UTF8 Smtp_Server.Send(e_mail) End If MsgBox("Mails was sent", Title:="Mail") End Sub
Что я уже пробовал:
Как я уже говорил, с помощью этого кода почта будет создана и отправлена, но в ней нет вложенного файла. Если я сделаю это без "для каждого"... цикл, то один файл будет добавлен без проблем. Но мне нужно добавить больше файлов, на самом деле для каждого отмеченного элемента в CheckedListBox моя программа должна искать эту папку, и если есть файл, то прикрепить его по почте, а также посмотреть в другой папке и так далее...