我能夠在郵件中發送附件,但附件內容爲空,大小顯示爲0字節。來自內存流的電子郵件附件在C#中爲空白
在互聯網上進行了一些搜索後,發現我們需要將內存流位置重置爲0,以便從頭開始。
我試過,但它似乎不工作。你能幫忙嗎?
請找我下面的代碼片段:
注:我能夠保存工作簿和數據存在於保存工作簿。
MemoryStream memoryStream = new MemoryStream();
StreamWriter writer = new StreamWriter(memoryStream);
writer.Write(xlWorkbook);
writer.Flush();
memoryStream.Position = 0;
MailMessage mail = new MailMessage();
SmtpClient SmtpServer = new SmtpClient("smtpclient");
mail.From = new MailAddress("[email protected]");
mail.To.Add("[email protected]");
mail.Subject = "Entry";
mail.Body = "Hello, PFA ";
System.Net.Mail.Attachment attachment;
attachment = new System.Net.Mail.Attachment(memoryStream,"xls");
attachment.ContentDisposition.FileName = "Input" + DateTime.Now.ToString("yyyyMMdd_hhss") + ".xls";
mail.Attachments.Add(attachment);
SmtpServer.Port = 465;
SmtpServer.UseDefaultCredentials = false;
SmtpServer.Credentials = new System.Net.NetworkCredential("Username", "password");
SmtpServer.EnableSsl = true;
SmtpServer.Send(mail);
writer.Dispose();
您是否知道XLS文件正在被正確讀取?沖水後的位置是什麼? – Virmundi 2015-02-11 13:34:52
沖洗後的位置值是44 – 2015-02-11 13:43:48
最後一個診斷問題,如果您尋求0而不是位置= 0會發生什麼?像memStream.Seek(0,SeekOrigin.Begin); – Virmundi 2015-02-11 13:52:40