2015-01-27 1 views
0

메일 시스템에 대기열을 사용하여 여러 첨부 파일을 보내려고합니다. 사용자가 파일을 첨부 할 때마다 파일이 변수에 저장되고 해당 변수가 대기열에 푸시됩니다. 여러 첨부 파일은 더 큰 대기열을 의미합니다. 전자 메일에 큐를 첨부하여 보낼 수 있다고 가정하지만 '오류가 발생했습니다.'(68) 'System.Collections.Queue'형식의 값을 'System.Net.Mail'로 변환 할 수 없습니다. 부착'.' 어떻게 해결할 수 있습니까? 아니면 여러 개의 첨부 파일을 보낼 수있는 다른 방법이 있습니까? 이 프로젝트는 대학을위한 프로젝트이기 때문에 반드시 대기열이나 스택을 사용해야합니다. 둘 중 하나를 사용하는 것이 중요합니다. 사용자가 '메일 보내기'버튼을 클릭하면 실행되는 코드가 포함되었습니다.VB에서 대기열을 사용하는 메일 첨부

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

답변

1

공지 이러한 주요 라인 : 그것은 올바른 유형 (이 첨부 객체를 기대하고있다)하지 않기 때문에

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

직접 큐를 첨부 할 수 없습니다. 그러나 대기열 또는 스택을 반복하여 루프 내부에서이 두 줄을 사용하여 첨부 파일을 만든 다음 첨부 파일 목록에 추가 할 수 있습니다.

숙제이므로 다소 모호하지만 더 궁금한 점이 있으면 알려주세요. 여기 https://msdn.microsoft.com/en-us/library/system.net.mail.mailmessage.attachments(v=vs.110).aspx

큐를 통해 반복의 예 :

여기에 첨부 클래스에 대한 MSDN의 문서이기

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

당신이 대신 콘솔에 작성을하고 싶은 것, 만들 첨부 파일을 첨부하여 메일 개체의 첨부 파일 목록에 추가하십시오.

+0

대기열이나 스택을 반복하면서 무슨 뜻인지 자세히 설명 할 수 있습니까? –

+0

특정되는 것에 대해 걱정하지 마십시오. 코드에 몇 가지 기능을 포함시켜야하는 프로젝트가 더 많습니다./대기열/스택 중 하나입니다. 고맙습니다! –

+0

큐를 루핑하는 방법에 대한 추가 정보가 업데이트되었습니다. 이 대답이 도움이된다면 그것을 upvote하고 대답으로 그것을 선택하십시오! 더 이상 설명이 필요하면 알려주십시오. – lukevp