1
在我的場景中,我需要閱讀交換消息的MAPI屬性以獲取有關諸如名稱,大小等附件的信息。 對於嵌入式消息,我需要獲取更多信息。TNEF嵌入式消息格式
所以我的問題是如何閱讀嵌入式消息信息?
任何人都可以給我鏈接到關於如何閱讀Exchange服務器上的郵件的嵌入式消息的文章或規範文檔。 我使用以下類:
- Microsoft.Exchange.Data.ContentTypes.Tnef.TnefReader
- Microsoft.Exchange.Data.Transport.Email.EmailMessage
在這裏被簡化代碼:
EmailMessage email;
MemoryStream mStream = new MemoryStream(File.ReadAllBytes(@"filename"));
byte[] buffer;
email = EmailMessage.Create(mStream);
using (TnefReader reader = new TnefReader(email.TnefPart.GetContentReadStream()))
{
//loop through all properties
while (reader.ReadNextAttribute())
{
if (reader.AttributeTag == TnefAttributeTag.Attachment)
{
bool IsEmbeddedMessage = false;
while (reader.PropertyReader.ReadNextProperty())
{
switch (reader.PropertyReader.PropertyTag.Id)
{
case TnefPropertyId.AttachMethod:
IsEmbeddedMessage = reader.PropertyReader.ReadValueAsInt64() == 5;
break;
case TnefPropertyId.AttachData:
if (IsEmbeddedMessage)
{
// here i read embedded message content,
// but do not know how to read its TNEF properties
buffer = new byte[reader.PropertyReader.RawValueLength];
reader.PropertyReader.ReadRawValue(buffer, 0,
reader.PropertyReader.RawValueLength);
}
break;
// ....
}
}
}
}
}
我知道我可以使用下面的代碼來獲得關於嵌入消息的一些信息:
email.Attachments[0].EmbeddedMessage
但我需要使用類似於上面的代碼的方法,以獲得所有可能的屬性。