ATT00006.dat文件自动附加在邮件附件中

时间:2009-09-09 06:45:47

标签: asp.net file-upload email-attachments

我有一个页面有文件上载控件,在提交表单时,当fileupload控件有文件时,文件通过邮件附件发送并且工作正常,但是当fileupload控件没有文件时,< strong> ATT00006.dat 文件会自动通过电子邮件附件发送。

参考网址:http://nextech.pk/Enquiry.aspx?Enq=cu

预先感谢您提供任何帮助

编辑 - 代码:

 hpf = fup1.PostedFile;
    String toEmail = "test@hotmail.com";
    String fromEmail = "mailer@hotmail.com";
    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);

3 个答案:

答案 0 :(得分: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 :(得分:0)

我认为您使用的邮件服务器(或邮件服务器使用的防病毒软件)会自动添加此文件。

有问题的文件是否包含任何内容,或者它是否为空?

答案 2 :(得分:0)

它是系统无法理解的附件类型的不匹配。如果没有文件作为附件,请发布您的代码以及您的操作。