2010-10-10 14 views

cevap

5

bir daha kolay çözüm burada yayınlanan edilmiştir: Get body from Outlook email [Drag’n’Drop]

Outlook.Application outlook = new Outlook.Application(); 
Outlook.Explorer oExplorer = outlook.ActiveExplorer(); 
Outlook.Selection oSelection = oExplorer.Selection; 

foreach (object item in oSelection) 
{ 
    Outlook.MailItem mi = (Outlook.MailItem)item; 
    Console.WriteLine(mi.Body.ToString()); 
} 

O Microsoft.Office.Interop.Outlook.dll kullanır. (Aynı adla NuGet'te var)

0

Yukarıdaki iki yanıtın ikisi de iyidir. Ancak, bilmeniz gereken birkaç şey var.

İlk yanıtta, örnek programı indirip çalıştırabilir ve 32 bit bir bilgisayarda çalıştırdığınız sürece her şeyin harika çalıştığını görürsünüz, aksi halde programınızı "AnyCPU" dan yeniden derlemeniz gerekir. "X86" ye. Bugün çoğunu, sürükleyip bıraktığım .msg dosya adlarının (e-postaların) ilk iki karakterinin neden eksik olduğunu anlamaya çalışarak geçirdim. "X86" ile yeniden derlediğimde her şey çalışmaya başladı.

İkinci cevapta, bu kodu kullanabileceğinizi göreceksiniz. Ancak, uygulamanızın başka bir versiyonunda çalışması gerekiyorsa (eğer uygulamanıza eklemiş olduğunuzdan farklıysa) referanslar) muhtemelen işe yaramayacaktır. İkinci cevapta atıfta bulunulan aynı tür Office nesnelerini kullandım ve birisinin programımı Office'in farklı bir sürümünde kullanmak istediğinde (yani, Office 14 sürümünde çekildiysem ve Office 2007'de kullan.)

İlgili konular