6

.msgファイルを読み取り、本文と添付ファイルを抽出するC#アプリケーションがあります。しかし、.emlファイルを読み込もうとすると、アプリケーションがクラッシュします。私は次のようにファイルをロードしています:

MailItem mailItem = (MailItem)outlookApp.CreateItemFromTemplate(msgFileName);
mailItem.SaveAs(fullFilename, OlSaveAsType.olHTML); // save body in html format
for(int i = 0; i < mailItem.Attachments.Count; i++)
    mailItem.Attachments[i].SaveAsFile(filename); // save attachments

これは.msgファイルでは正常に機能しますが、.emlファイルでは機能しません。Outlook 2010で.emlファイルを開くことができるため、.emlファイルが機能しない理由がわかりません。

Outlookプライマリ相互運用機能アセンブリを使用して.emlファイルをロードするにはどうすればよいですか?

4

4 に答える 4

8

このサンプル コードを試す.EML ファイルから電子メール情報を簡単に取得する

于 2011-05-20T16:26:51.773 に答える
5

CreateItemFromTemplateMSG/OFT ファイルでのみ機能します。EML ファイルの場合は、コードでファイルを明示的に解析するか、サード パーティのライブラリ (Redemption など) を使用する必要があります。

次のコードは、MSG ファイルを作成し、 Redemption ( RDOSessionオブジェクト)を使用して EML ファイルをそのファイルにインポートします。

  set Session = CreateObject("Redemption.RDOSession")
  Session.MAPIOBJECT = outlookApp.Session.MAPIOBJECT
  set Msg = Session.CreateMessageFromMsgFile("C:\Temp\temp.msg")
  Msg.Import "C:\Temp\test.eml", 1024
  Msg.Save
  MsgBox Msg.Subject

その後、メッセージ ( RDOMail ) を使用して、さまざまなプロパティ (件名、本文など) にアクセスできます。

于 2011-05-18T21:51:52.867 に答える