2012-03-13 29 views
1

.MSGファイルからC#アプリケーションに1つの添付ファイルをドラッグアンドドロップすると、Outlookメールアイテムの詳細を取得できますか?私のアプリケーションは現在、アプリケーションにドロップされたときに.MSGの内容を分離しますが、さらにステップを進め、.msgの一部である添付ファイルから送信者、日付/時刻などを取得したいと考えています。.MSG添付ファイルからメールアイテムの詳細を取得

Outlook.Application myApp = new Outlook.Application(); 
object selectedItem = myApp.ActiveExplorer().Selection[1]; 
Outlook.MailItem item = selectedItem as Outlook.MailItem; 
string sender = item.SenderName; 

私は何も起こりませんOutlook.MailアイテムとしてのSelectedItemをキャストしようとすると:これは私が現時点でしようとしているものです。これですべてのヘルプは

をいただければ幸いです

おかげ

クリス

以来、私はイム私は成功していないとして探しているという情報を入手している他の方法を見てきた私の最初のポストメソッド

私は次の記事http://msdn.microsoft.com/en-us/library/aa219397(v=office.11).aspxを見て、そのコードをテストプロジェクトに含めることにしました。私は最初に添付ファイルからmsgの詳細を取得できるかどうか尋ねましたが、ユーザーが現在開いているメッセージから添付ファイルをドラッグすると、ActiveExplorerメソッドからメッセージの詳細を取得できるかどうか疑問に思っていました。 ";"

myOlSel.Item(x)は&を.SenderName:時点

Outlookは「プログラムが電子メールアドレスにアクセスしようとしています...」とメッセージしますが、これでメッセージボックスがハングアップし、オプションの1つを選択できません。それ以上の読書をした後、私はこれがなぜあるのか理解していますが、それの周りには何かありますか?実際には、選択した項目がインデックス1ではありませんので

おかげ

クリス

+0

何も起こっていないということはどういう意味ですか? selectedItemがnullの場合、コードによって例外が発生します。 selectedItemがOutlook.MailItem型の場合、item.SenderNameを見ることができるはずです。そうでなければ、selectedItemを別の型にキャストしようとすると例外が発生すると思います。 アプリをデバッグすると、selectedItemのタイプを確認できますか? –

+0

返事をありがとう。 SelectedItemはSystem._COMObjectとして返されます。次に、次のように型を取得するために追加しました。string type = Microsoft.VisualBasic.Information.TypeName(selectedItem); String型がMailItemとして表示されていますが、selectedItemをMailItemとしてキャストしようとすると、項目はnullのままです。 – chrisblue13

答えて

1

はたぶんのSelectedItemはnullですか?

私はでfollwowingが

Inspector activeInspector = this.OutlookApp.ActiveInspector() as Inspector; 
object currentItem = activeInspector.CurrentItem; 
if (currentItem != null && currentItem is AppointmentItem) 
{ 
    AppointmentItem appItem = currentItem as AppointmentItem; 
} 

(それは予定アイテムでだalthou)働いているされていおそらく、あなたは[0]の選択を使用する必要がありますか?

+0

私はセレクション[0]を試しましたが、配列外の例外があります(これは奇妙です)。 MSDNのexmapleはそれがselection [1]であることを示しています。コードスニペットを使用してCOMオブジェクトをキャストしようとしましたが、appItemはnullのままです。また、itemType = Microsoft.VisualBasic.Information.TypeName(selectedItem)という文字列を使用してcurrentItemの型をチェックしました。とitemType = MailItemので、ここで何が起こっているのか分かりません!あなたの助けとコードスニペットニックラスにもう一度感謝します。 – chrisblue13

+0

私はそれがVSTOプラグインであると思います。たぶん問題は=新しいOutlookにあります。Application()呼び出し。それはVSTOの場合は、私はあなたが新しいインスタンスを作成する代わりにアプリケーションのインスタンスを使用する必要がありますと思う。このMSDNの記事を参照してください:http://msdn.microsoft.com/en-us/library/ms268994(v=vs.100).aspx –

+0

プラグインなし、私はMicrosoft.Office.Interopへの参照をしています。見通し。 012.ActiveExplorer()を公開することはできません。選択 – chrisblue13

関連する問題