0

C# を使用して、添付ファイルを含む Outlook 受信トレイのメッセージを処理しています。添付ファイルの 1 つは、olEmbeddeditem 型です。その添付ファイルの内容を処理できる必要があります。私が言えることから、添付ファイルをディスクに保存し、オブジェクトを返す CreateItemFromTemplate を使用する必要があります。

私が抱えている問題は、olEmbeddeditem が Outlook オブジェクト タイプ MailItem、ContactItem、MeetingItem などのいずれかになる可能性があることです。テンプレートから項目を作成しますか?

あるいは、olEmbeddeditem 添付ファイルのコンテンツを処理用のオブジェクトに取得するより良い方法があれば、それも受け入れます。

4

2 に答える 2

1

Outlook オブジェクトのタイプを判別するために、Google グループで次のコードを見つけました。

Type t = SomeOutlookObject.GetType();
string messageClass = t.InvokeMember("MessageClass",
  BindingFlags.Public | 
  BindingFlags.GetField | 
  BindingFlags.GetProperty,
  null,
  SomeOutlookObject,
  new object[]{}).ToString();
Console.WriteLine("\tType: " + messageClass);

それが olEmbedded アイテムに役立つかどうかはわかりませんが、通常のメッセージ、カレンダー アイテムなどを識別するようです。

于 2008-09-18T20:11:55.630 に答える
0

アクセスしたいユーザー定義のプロパティを含む電子メールでもある電子メールの添付ファイルを操作するには、次の手順を実行します。

Outlook.Application mailApplication = new Outlook.Application();
Outlook.NameSpace mailNameSpace = mailApplication.GetNamespace(“mapi”);
// make sure it is an embedded item
If(myAttachment.Type == Outlook.OlAttachmentType.olEmbeddeditem)
{
    myAttachment.Type.SaveAsFile(“temp.msg”);
    Outlook.MailItem attachedEmail = (Outlook.MailItem)mailNameSpace.OpenSharedItem(“temp.msg”);
    String customProperty = attachedEmail.PropertyAccessor.GetProperty(
        “http://schemas.microsoft.com/mapi/string/{00020329-0000-0000-c000-000000000046}/myProp
}

を使用して MailItem を開くと、上記のようにプロパティにアクセスできなくなります。

Outlook.MailItem attachedEmail = (Outlook.MailItem)mailApplication.CreateFromTemplate(“temp.msg”);  
于 2012-10-26T15:33:00.150 に答える