2017-01-11 27 views
1

WindowsサービスでOutlookオブジェクトを使用して、受信トレイからメールを読み取り、埋め込み画像を抽出しようとしています。しかし、メールにはどんなタイプの画像も埋め込むことができます。私はGIF形式で埋め込まれたすべてを保存することができるOutlook APIに簡単な方法はありますか?Outlookの埋め込み画像をGIF形式で保存する

if (newEmail.Attachments.Count > 0) 
      { 
       for (int i = 1; i <= newEmail 
        .Attachments.Count; i++) 
       { 
        string value = newEmail.Attachments[i].PropertyAccessor.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x3712001E"); 

        if (!String.IsNullOrEmpty(value)) 
        { 
        newEmail.Attachments[i].SaveAsFile 
         (@"C:\TestFileSave\" + 
         newEmail.Attachments[i].FileName); 
        } 
       } 
      } 
+0

いいえ、マインタイプでバイナリ検出を使用して、添付ファイルが画像であることを確認してからgifとして保存する必要があります。必要な機能は何ですか?写真のみ? –

+0

@JeremyThompsonはいすべての埋め込みファイルを保存します。私は、ほとんどの場合、ユーザーはスクリーンショットなどの画像を埋め込むと思います。その他のファイルは一般的に(画像以外の)メールに埋め込むことができますか? – Navaneet

+0

RTFモードではファイルを置くことができますが、アフリカンは添付ファイルになります(私がチェックした最後の時間を思い出すことはできません)。また、埋め込まれたビデオやオーディオクリップを見たこともありません。 –

答えて

1

サービスでOutlookオブジェクトモデルを使用することはできません。 COMアドインを作成しないでください。

また、PR_ATTACH_CONTENT_IDプロパティの存在を確認しています。 Content-ID MIMEヘッダーは添付ファイルに設定できます。必ずしも画像である必要はありません.HTMLの本文を確認する必要があります。

+0

Microsoft.Office.Interop.Outlookを使用する方法はありませんWindowsサービスの.dll?可能でない場合、解決策は何ですか? – Navaneet

+1

拡張MAPI(C++またはDelphi)、償還(拡張MAPIはすべての言語から使用できます)、またはEWS(Exchangeメールボックスの場合)です。 –

+0

相互運用性の見通しが機能しないか、Windowsサービスで使用されるべきではないセキュリティ上の懸念事項です。私は自分のマシンのWindowsサービスでそれを使ってみました。しかし別のサーバでは、私はmailitem.SenderEmailAddressを取得しようとするとリモートプロシージャコールが失敗しました。いずれの場合も、Windowsサービスは、Outlookに接続しているユーザーに設定されたユーザーにログオンしています。では、これらの2つのシナリオの背景は何ですか? – Navaneet

関連する問題