2012-11-16 41 views
0

我想發送.xlsx,首先我創建(它有html代碼)然後我用SMTP服務器發送它,它確實附加文件,但當我試圖打開它「它說,該文件已損壞等」任何幫助?GridView創建後發送郵件c#

這裏是我的代碼

try 
      { 

      System.IO.StringWriter sw = new System.IO.StringWriter(); 
      System.Web.UI.HtmlTextWriter htw = new System.Web.UI.HtmlTextWriter(sw); 

      // Render grid view control. 
      gvStock.RenderControl(htw); 

      // Write the rendered content to a file. 
      string renderedGridView = sw.ToString(); 
      File.WriteAllText(@"C:\test\ExportedFile.xls", renderedGridView); 

      // File.WriteAllText(@"C:\test\ExportedFile.xls", p1); 
      } 
      catch (Exception e) 
      { 
      Response.Write(e.Message); 
      } 


      try 
      { 
      MailMessage mail = new MailMessage(); 
      SmtpClient SmtpServer = new SmtpClient("server"); 
      mail.From = new MailAddress("[email protected]"); 
      mail.To.Add("[email protected]"); 
      mail.Subject = "Test Mail - 1"; 
      mail.Body = "mail with attachment"; 



      Attachment data = new Attachment("C:/test/ExportedFile.xls"); 
      mail.Attachments.Add(data); 

      SmtpServer.Port = 25; 
      SmtpServer.Credentials = new System.Net.NetworkCredential("user", "pass"); 
      // SmtpServer.EnableSsl = true; 
      SmtpServer.UseDefaultCredentials = false; 
      SmtpServer.Send(mail); 
      } 
      catch(Exception e) 
      { 
      Response.Write(e.Message); 
      } 
+0

爲什麼比所在的文件寫入到該路徑不同附件的路徑,在這個例子中? –

+0

它的路徑相同,對不起,我們在這裏講西班牙語哈哈 –

+0

是在Excel中打開的文件,當你瀏覽到C:/test/ExportedFile.xls? – dferraro

回答

0

你可能需要指明附件的類型

+0

的文件但它被指示爲 –

+0

附件數據=新附件(「C:/ test /ExportedFile.xls「); mail.Attachments.Add(data); –

+0

你還沒有設置MIME類型 – pm100