2009-09-09 186 views
0

我有一個頁面有文件上傳控制,在提交表單時,當文件上傳控件有文件,文件通過附件在郵件中發送和工作很好,但是當fileupload控件沒有文件,ATT00006.dat文件通過電子郵件附件自動發送。ATT00006.dat文件自動附加郵件附件

參考網址:http://nextech.pk/Enquiry.aspx?Enq=cu

提前感謝所有幫助

編輯 - 代碼:

hpf = fup1.PostedFile; 
    String toEmail = "[email protected]"; 
    String fromEmail = "[email protected]"; 
    MailMessage objMail = new MailMessage(fromEmail, toEmail); 
    objMail.IsBodyHtml = true; 

    StringBuilder MailBody = new StringBuilder(); 

    MailBody.Append("<html><head></head><body> <br>"); 
    MailBody.Append("<br>" + "An enquiry is filed <br><br>"); 
    MailBody.Append("<strong><u>Enquirer Information</u></strong>" + "<br><br>"); 
    MailBody.Append("<strong>Contact Name:</strong>&#09;" + txtFirstName.Text + "<br>"); 
    MailBody.Append("<strong>Email:</strong>&#09;&#09;&#09; " + txtEmail.Text + "<br>"); 
    MailBody.Append("<strong>Institute:</strong>&#09;&#09; " + txtInstitute.Text + "<br>"); 
    MailBody.Append("<strong>Phone #:</strong>&#09;&#09; " + txtPhone.Text + "<br>"); 

    MailBody.Append("<br><strong>Description:</strong><br>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; " + txtEnquiry.Text + "<br>"); 

    if (hpf != null) 
    { 
     MailBody.Append("<br>" + "This email also contains an attachment:- <Strong>(" + hpf.FileName + ")</Strong><br>"); 
    } 

    MailBody.Append("</body></html>"); 
    objMail.Body = MailBody.ToString(); 
    if (hpf != null) 
    { 
     System.IO.Stream inputStream = hpf.InputStream; 
     String fileName = hpf.FileName; 
     Attachment attach = new Attachment(inputStream, fileName); 

     objMail.Attachments.Add(attach); 
    } 
    SmtpClient SmtpClnt = new SmtpClient(); 
    SmtpClnt.Send(objMail); 

回答

0

它在系統不理解的附件類型中存在不匹配。請發佈您的代碼,以及在沒有文件作爲附件時的操作。

+0

我已經發布代碼,請檢查,謝謝 – 2009-09-09 07:01:55

+0

當沒有附加文件。您是否看到「此電子郵件還包含附件」文本以及ATT00006.dat附件。 – Shoban 2009-09-09 07:32:06

+0

yes ..這是文本....這封電子郵件還包含附件: - () – 2009-09-09 07:38:49

0

我認爲你正在使用的郵件服務器(或防病毒軟件使用的郵件服務器)自動添加這個文件。

問題文件是否包含任何內容,或者是否爲空?

+0

但是,當我們重視文件,然後,這個ATT00006.dat沒有附在電子郵件中? – 2009-09-09 06:51:59

+0

什麼意思檢查這個URL http://nextech.pk/Enquiry.aspx?Enq=cu如果用戶上傳文件在fileupload控制文件將被附上否則爲空 – 2009-09-09 07:08:52

+0

對不起,我的意思是文件ATT00006.dat有任何內容? – Cocowalla 2009-09-09 07:13:13

2

我不知道你是否有過這個答案,但我最近詳細研究了這個問題。發生該問題是因爲您沒有爲附件提供明確的名稱。除非明確定義名稱,否則ASP.NET將始終以.DAT形式附加。

問題是,人們假設ASP.NET將使用文件名作爲附件名稱,這不會發生!

在你的代碼,你應該創建附件的一個實例,則顯式使用FileUpload.FileName屬性提供的名稱:

Dim att As New System.Net.Mail.Attachment(fu.PostedFile.InputStream, System.Net.Mime.MediaTypeNames.Application.Octet) ' use Octet for binary files ' 
att.Name = fu.FileName ' get the file name and type automatically ' 
mm.Attachments.Add(att) 

完整解釋of ASP.NET attaching .DAT files is available here

+1

這應該是實際的答案,謝謝你的輸入伴侶:) – JSancho 2014-02-13 14:03:44

+0

感謝您的反饋 – EvilDr 2014-02-13 14:58:49