Outlook にインポートしたい電子メール ファイルでいっぱいのディレクトリがあります。
これらのファイルは、私の知る限り、RFC822 形式である必要があります。それらを Notepad++ で開くと、次の平文が表示されます
Return-Path: XXX
Received: XXX
Authentication-Results: XXX
X-Message-Status: XXX
X-SID-PRA: XXX
X-SID-Result: XXX
X-AUTH-Result: XXX
X-Message-Delivery: XXX
X-Message-Info: XXXX
Received: from XXX
Received: from XXX
DomainKey-Signature: XXX
だから私は彼らが普通の古い形式であると思います。ここで、インデックスを作成して検索可能にするために、それらを PST ファイルにインポートしたいと思います。Outlook Interop についての知識はほとんどありません。
無題のファイルの名前を変更する.eml
と、Outlook 2010 で開くことができます。それらを Outlook ウィンドウにドラッグすると、半分は機能します。メールはプレビューされませんが、ダブルクリックできます。すべての電子メールがインポートされるわけではなく (3000 件以上のメッセージについて話している)、Outlook は破損したファイルを無視しないため、すべてまたはまったくインポートされません。
Outlook の相互運用性を調べていました。
基本的な考え方は次のとおりです。テキスト ファイルごとに、それを電子メールとして特定のフォルダーにインポートします。
次のコードを書き込もうとしましたが、まだテストしていません
Application outlook = GetApplicationObject();
outlook.Session.AddStore(pstPath);
Store theStore = outlook.Session.Stores.Cast<Store>().FirstOrDefault(store => store.FilePath == pstPath);
if (theStore == null) throw new Exception();
try
{
string[] files = Directory.GetFiles(dataDirectory, "*", SearchOption.AllDirectories);
Folder folder = (Folder)theStore.GetRootFolder();
foreach (string file in files.Where(file => file.EndsWith(".eml")))
{
//What?
}
}
finally
{
//Dispose??
}
GetApplicationObject
別のSO回答からどこにコピーされますか。
質問:MailItem
ファイルの内容に基づいて を作成することは可能ですか? それとも、メール リーダーを使用してから、フィールドごとに MailItem を作成する必要がありますか? 次のように書いていました...
IMail mail = builder.CreateFromEmlFile(file);
MailItem outlookMail = outlook.CreateItem(OlItemType.olMailItem);
outlookMail.Body = mail.GetBodyAsText();
outlookMail.CC = string.Join("; ", mail.Cc.Select(x => x.Render()));
outlookMail.HTMLBody = mail.GetBodyAsHtml();
if (MimeImportance.High.Equals(mail.Importance))
outlookMail.Importance = OlImportance.olImportanceHigh;
else if (MimeImportance.Low.Equals(mail.Importance))
outlookMail.Importance = OlImportance.olImportanceLow;
else
outlookMail.Importance = OlImportance.olImportanceNormal;
outlookMail.Sender=outlook.CreateItem()
私が試しているライブラリはhttp://www.limilabs.com/mailからのものです