2009-05-05 4 views
3

Ich versuche, textbasierte Dateianhänge zu analysieren (txt, doc, etc ...). Ich kann jedoch nicht zu den binären Informationen selbst gelangen. Ich kann den Dateinamen bekommen und ich kann die Datei in einen temporären Ordner speichern und von dort öffnen, aber das scheint chaotisch zu sein.C# Outlook 2007 - Wie greife ich direkt von meinem Addin auf Anlageninhalte zu?

Gibt es eine Möglichkeit, auf den Inhalt eines Anhangs zuzugreifen, ohne ihn zu speichern, zu lesen und dann zu löschen oder jage ich nur meinen Schwanz?

Antwort

3

Redemption Ihnen helfen hier, hat SafeMailItem.Attachments Sammlung Attachment-Objekt, das eine Eigenschaft "AsText" hat Check-out

http://www.dimastr.com/redemption/

76mel

+0

Mit Ausnahme der $ 199 Lizenzgebühr scheint das großartig. Ich muss sehen, ob ich das Geld dafür sparen kann. – McAden

+0

Redemption ist der einzige nette Weg, da es ein Wrapper um erweiterte MAPI ist und die Komplexität herausnehmen. – 76mel

3

Sie Inhalt einer Anlage bekommen kann Microsoft mit schema -

private void GetAttachmentContent(Attachments attachments) 
    { 
     foreach (Attachment attachment in attachments) 
     { 
      //microsoft schema to get the attachment content 
      string AttachSchema = "http://schemas.microsoft.com/mapi/proptag/0x37010102"; 
      byte[] filebyte = (byte[])attachment.PropertyAccessor.GetProperty(AttachSchema); 
     } 
    } 

Sie müssen Referenz: Microsoft.CSharp.dll in Codedatei

+0

PropertyAccessor.GetProperty wird für die großen binären Eigenschaften (wie PR_ATTACH_DATA_BIN) fehlschlagen. Auf der MAPI-Ebene (C++ oder Delphi) müsste PR_ATTACH_DATA_BIN mit ISAttach :: OpenProperty als IStream geöffnet werden. PropertyAccessor macht das nicht. –

+0

Können Sie große binäre angeben, was ist die Größe, mit der es nicht zurechtkommt? – Aamol

+0

Es hängt vom Anbieter ab. Für Online-Exchange-Speicher kann es so niedrig wie 32 KB sein. –

Verwandte Themen