2009-09-09 51 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