ASP.NET邮件附件不包含数据

时间:2011-12-02 04:01:53

标签: c# asp.net

我使用ASP.NET 3.5和C#在帮助台上开发Web应用程序。 当用户提出投诉时,我会向管理员发送电子邮件。

我的问题是带附件的邮件(word,excel,jpg,bmp等)   由用户发送给管理员附件不包含任何数据。

以下是我使用的代码示例:

MailMessage mm = new MailMessage();
mm.To.Add(mail1@abcd.com);
mm.From = new MailAddress("web@abcd.com");

if (FileUpload1.HasFile) /// for checking if mail has attachment
{
  mm.Attachments.Add(new Attachment(FileUpload1.PostedFile.InputStream, ileUpload1.FileName));
}

mm.body="Test Message";

 mm.IsBodyHtml = true;

 //neceessary credentials are specified in web.config file

 SmtpClient ss = new SmtpClient(); 

 ss.Send(mm);

2 个答案:

答案 0 :(得分:2)

要发送带附件的邮件,您必须先从服务器上的文件上载程序中保存文件,然后将其作为附件以邮件形式发送。这里的当前问题是,您正在直接尝试从fileupload控件发送邮件中的文件。

一旦邮件与附件一起发送,您就可以从服务器中删除保存的文件。

答案 1 :(得分:1)

我怀疑你遇到了这个问题,因为流的当前位置已经结束了。

你可以在调用附件构造函数并添加之前尝试FileUpload1.PostedFile.InputStream。

我实际上没有尝试过这个来验证,但我希望这是空虚的来源 - 流已经读完了,但它已经在最后了,因为阅读内容将它带到了最后。我以前见过类似的东西。