0

我有一个具有文件上传控件的页面,在提交表单时,当文件上传控件有文件时,文件通过邮件中的附件发送并且工作正常,但是当文件上传控件没有文件时,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);
4

3 回答 3

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)

此处提供了 ASP.NET 附加 .DAT 文件的完整说明

于 2012-10-09T13:58:41.750 回答
0

系统无法理解的附件类型不匹配。请发布您的代码以及当没有文件作为附件时您会做什么。

于 2009-09-09T06:51:24.293 回答
0

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

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

于 2009-09-09T06:48:28.717 回答