asp.net vb проблема с вложением формы - PullRequest
0 голосов
/ 14 марта 2012

Я создал форму, которая позволяет клиенту загружать несколько (4) вложений.проблема в том, что когда форма отправляется на мою электронную почту, я получаю 4 вложения к почте, даже если клиент загрузил только 1 вложение.если он загрузил одно вложение, остальное я получу в виде «noname» файлов.как я могу это исправить?

это мой бэк-код (VB):

Imports System.Net.Mail

Partial Class SendAttachment

    Inherits System.Web.UI.Page


    Protected Sub DL1_SelectedIndexChanged(sender As Object, e As EventArgs)
    If DropDownList1.SelectedItem.Text = "אחר" Then
        q1.Visible = True  
        Else
                q1.Visible= False  
    End If
If DropDownList1.SelectedItem.Text = "אחר" Then
       q22.Visible = True
        Else
          q22.Visible= False 
    End If
End Sub

    Protected Sub btnSubmit_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnSubmit.Click
        'Make sure a file has been uploaded



     If String.IsNullOrEmpty(AttachmentFile.FileName) OrElse AttachmentFile.PostedFile Is Nothing Then
            Throw New ApplicationException("לא העלאת קבצים.")
        End If

if AttachmentFile.PostedFile.ContentLength >600000 then

'display error file size should be less than 100kb

end if







        '!!! UPDATE THIS VALUE TO YOUR EMAIL ADDRESS
        Const ToAddress As String = "pelleg@shakuff.co.il"
        dim textMsg as String
   textMsg ="שאלות סינון" &
 (vbCrLf)  & (vbCrLf)  & (vbCrLf)  & question1.text & (vbCrLf)  & q1.text & 
(vbCrLf) & (vbCrLf) & question2.text & (vbCrLf) & q2.text & 
(vbCrLf) & (vbCrLf) & question3.text & (vbCrLf) &q3.text & 
(vbCrLf) & (vbCrLf) & "ממליצים" & (vbCrLf) & c1.text & (Space(5)) & c2.text & (Space(5)) & c3.text & (vbCrLf) &
 (vbCrLf) & question4.text & (vbCrLf) & q5.text & (vbCrLf) &
 (vbCrLf) & question5.text & (vbCrLf) & q6.text & (vbCrLf) &
"------------------------------------------------------------------------------------------------" &
 (vbCrLf) & "פרטים אישיים" & (vbCrLf) & 
(vbCrLf) & "שם מלא" & (vbCrLf) & pi1.text & (vbCrLf) &
 (vbCrLf) & "כתובת מייל" & (vbCrLf) & UsersEmail.Text & (vbCrLf) &
 (vbCrLf) & "טלפון" & (vbCrLf) & pi2.text & (vbCrLf) & 
(vbCrLf) &"שעות נוחות" & (vbCrLf) & pi3.text & (vbCrLf) & 
(vbCrLf) & (vbCrLf) & "הערות"  & 
(vbCrLf)  & body.text & (vbCrLf) & 
(vbCrLf) & "מעוניין בהצעות נוספות" & (vbCrLf) & q4.text 
 '



        '(1) Create the MailMessage instance
        Dim mm As New MailMessage(UsersEmail.Text, ToAddress)

        '(2) Assign the MailMessage's properties
        mm.Subject = Subject.text &  "-" & pi1.text
        mm.Body = textMsg

        mm.IsBodyHtml = false

        'Attach the file
        AttachmentFile.PostedFile.InputStream.Position = 0  

        mm.Attachments.Add(New Attachment(AttachmentFile.PostedFile.InputStream, AttachmentFile.FileName))
        mm.Attachments.Add(New Attachment(AttachmentFile2.PostedFile.InputStream, AttachmentFile2.FileName))



        '(3) Create the SmtpClient object
        Dim smtp As New SmtpClient

        '(4) Send the MailMessage (will use the Web.config settings)
        smtp.Send(mm)

        'Show the EmailSentForm Panel and hide the EmailForm Panel
        EmailSentForm.Visible = True
        EmailForm.Visible = False
    End Sub

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        If Not Page.IsPostBack Then
            'On the first page load, hide the EmailSentForm Panel
            EmailSentForm.Visible = False

        End If
    End Sub
End Class

заранее спасибо!

1 Ответ

0 голосов
/ 14 марта 2012

это потому, что вы добавляете вложения, хотя они не были загружены с помощью mm.Attachments.Add.

Вы должны проверить каждый загруженный файл перед прикреплением к электронному письму

Это можно сделать, как показано ниже if (AttachmentFile2.Hasfile) mm.Attachments.Add (Новое вложение (AttachmentFile2.PostedFile.InputStream, AttachmentFile2.FileName))

...