2014-10-17 3 views
0

У меня есть рабочий код для добавления в Outlook. Но мы должны указать физическое расположение файла при добавлении вложения. В моем сценарии я экспортирую документ с данными в текстовый документ и должен прикрепить этот документ к электронной почте, не сохраняя документ в папке с файлами. Код следует ..Добавить сгенерированное вложение в электронную почту Outlook

Microsoft.Office.Interop.Outlook.Application oApp = new Microsoft.Office.Interop.Outlook.Application(); 
Microsoft.Office.Interop.Outlook._MailItem oMailItem = (Microsoft.Office.Interop.Outlook._MailItem)oApp.CreateItem(Microsoft.Office.Interop.Outlook.OlItemType.olMailItem); 
oMailItem.To = "[email protected]"; 
oMailItem.Subject = "Outlook Email test Subject"; 
StringWriter strwritter = new StringWriter(); 
HtmlTextWriter htmlWrite = new HtmlTextWriter(strwritter); 
GridView gv = new GridView(); 
DataTable dtWord = GetDataItem(); 
gv.DataSource = dtWord; 
gv.DataBind(); 
gv.RenderControl(htmlWrite); 
MemoryStream ms = null; 
StreamWriter sw = new StreamWriter(ms); 
sw.WriteLine(sb.ToString()); 
sw.Flush(); 
ms.Seek(0, SeekOrigin.Begin); 

string fileName = @"D:\test.doc"; 
oMailItem.Attachments.Add(fileName, Microsoft.Office.Interop.Outlook.OlAttachmentType.olByValue, Type.Missing, Type.Missing); 
oMailItem.Display(true); 

Итак, мне нужно добавить поток памяти в электронную почту в качестве вложения. Пожалуйста помоги. Большое спасибо!

+0

http://stackoverflow.com/questions/5336239/how-to-attach-a-file-from-memorystream-to-a-mailmessage-in-c-sharp – JoshHunter

ответ

0

Вы не можете этого сделать. Attachments.Add в Outlook принимает в качестве параметра строку с именем файла вложения или другим элементом Outlook (MailItem и т. Д.).

Если используется Redemption, его метод RDOAttachments .Add также использует интерфейс IStream COM в качестве параметра.

Смежные вопросы