在VB中使用队列的邮件附件



>我正在尝试使用邮件系统中的队列来发送多个附件。这个想法是,每次用户附加文件时,文件都会保存到一个变量中,并将该变量推送到队列中。多个附件意味着更大的队列。我假设我可以将队列附加到电子邮件并发送它,但是当我尝试时,我收到错误"(68)类型为'系统.集合.队列'的值无法转换为'系统.Net.Mail.附件'。我该如何解决这个问题?或者是否有其他方法可以发送多个附件?我绝对需要使用队列或堆栈,因为这是一个大学项目,对我来说,使用两者之一至关重要。我已经包含了用户单击"发送邮件"按钮后运行的代码。

If (String.IsNullOrEmpty(ToMail.Text) OrElse RegexClass.MailRegex(ToMail.Text)) Then MessageBox.Show("Please enter a valid email address") Else Try mail.From = New MailAddress(My.Settings.SaveMailID) mail.To.Add(ToMail.Text) mail.Body = MailBody.Text mail.Subject = MailSubject.Text mail.Priority = MailPriority.Normal Dim smtpserver As New SmtpClient(My.Settings.SMTP, My.Settings.Port) smtpserver.Credentials = New Net.NetworkCredential(My.Settings.SaveMailID, My.Settings.SaveMailPass) If My.Settings.SMTP = "smtp.gmail.com" And My.Settings.Port = "25" Then smtpserver.EnableSsl = True End If smtpserver.Port = My.Settings.Port smtpserver.Host = My.Settings.SMTP If Not Attachbox.Text = Nothing Then Dim attach As New Attachment(Attachbox.Text) mail.Attachments.Add(attach) End If If Not CCBox.Text = Nothing Then mail.CC.Add(CCBox.Text) End If If Not BCCBox.Text = Nothing Then mail.Bcc.Add(BCCBox.Text) End If smtpserver.Send(mail) Label7.Show() Catch ex As Exception MsgBox(ex.Message) End Try End If

请注意以下关键行:

Dim attach As New Attachment(Attachbox.Text)
mail.Attachments.Add(attach)

您将无法直接附加队列,因为它不是正确的类型(它需要附件对象)。 但是,您可以遍历队列或堆栈,并在循环中使用这两行来创建附件,然后将其添加到附件列表中。

由于这是家庭作业,我试图有些模糊,但如果您有任何其他问题,请告诉我。

下面是附件类上的 MSDN 文档:https://msdn.microsoft.com/en-us/library/system.net.mail.mailmessage.attachments(v=vs.110).aspx

下面是循环访问队列的示例:

For Each element As String In queue
    Console.WriteLine(element)

您将需要执行此操作,而不是写入控制台,而是创建一个附件并将其添加到邮件对象的附件列表中。

相关内容

  • 没有找到相关文章

最新更新