[英]Add XtraReport as attachment in outlook
這是我的代碼:
using (RepMissingStatusProject report = new RepMissingStatusProject())
{
report.DataSource = await inventory.RepMissingStatusProject(Convert.ToInt32(oListProject.cmbProject.EditValue)).ConfigureAwait(true);
report.CreateDocument();
Microsoft.Office.Interop.Outlook.Application oApp = new Microsoft.Office.Interop.Outlook.Application();
Microsoft.Office.Interop.Outlook.MailItem oMsg = (Microsoft.Office.Interop.Outlook.MailItem)oApp.CreateItem(Microsoft.Office.Interop.Outlook.OlItemType.olMailItem);
MemoryStream mem = new MemoryStream();
report.ExportToPdf(mem);
mem.Seek(0, System.IO.SeekOrigin.Begin);
oMsg.To = "Test@Test.com";
oMsg.Subject = "Test";
oMsg.BodyFormat = Microsoft.Office.Interop.Outlook.OlBodyFormat.olFormatHTML;
oMsg.Display(false);
oMsg.HTMLBody = "Veuillez trouver ci-joint:" + "<br />" + oMsg.HTMLBody;
oMsg.Attachments.Add(mem, Microsoft.Office.Interop.Outlook.OlAttachmentType.olByValue, Type.Missing, Type.Missing);
}
outlook 打開正常,所有數據都正確,除了附件文件我收到此錯誤:
System.Runtime.InteropServices.COMException:'未找到成員。 (HRESULT 異常:0x80020003 (DISP_E_MEMBERNOTFOUND))'
我怎么解決這個問題?。
在此先感謝您的幫助
更新:
我嘗試使用此代碼
System.Net.Mime.ContentType ct = new System.Net.Mime.ContentType(System.Net.Mime.MediaTypeNames.Application.Pdf);
System.Net.Mail.Attachment attach = new System.Net.Mail.Attachment(mem,ct);
attach.ContentDisposition.FileName = "État De Manque.pdf";
但我得到另一個錯誤
System.ArgumentException HResult=0x80070057 Message=抱歉,出了點問題。 您可能想再試一次。 StackTrace "at Microsoft.Office.Interop.Outlook.Attachments.Add(Object Source, Object Type, Object Position, Object DisplayName)\r\n at Smart_Industrial_Management.PL.FrmInventory.d__44.MoveNext() in D:\SIM Windows7\智能工業管理\PL\FrmInventory.cs:line 859" 字符串
oMsg.Attachments.Add(mem
第一個參數應該是文件系統上文件的路徑。 因此您需要將 pdf 導出到文件(具有隨機生成的名稱)並將路徑作為第一個參數放入 oMsg.Attachments.Add() 方法調用中。
所以你的代碼應該是 lilke
report.ExportToPdf(randomName);
...
oMsg.Attachments.Add(randomName,...);
File.Delete(randomName);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.