我有一些Outlook MSG需要保存爲備用格式,例如MHT。每個MSG都有成千上萬的收件人,並且我知道MSG結構不足以處理大量的收件人。我相信我的第一步是將MSG導入可處理大量收件人的PST。將成千上萬的收件人導入Outlook中的Outlook MSG
我正在使用Outlook 2010和Redemption 5.4(完整版)。我準備使用Outlook對象模型或Redemption來實現我的目標。平臺:Windows 7 SP1,64位。
我曾嘗試以下方法:
//Establish Session
RDOSession rdoSession = new RDOSession();
rdoSession.Logon(null, null, false, true, null, true);
//Create empty mail item in PST.
RDOMail rdoMail = rdoSession.GetDefaultFolder(rdoDefaultFolders.olFolderInbox).Items.Add(null);
//Merge MSG into new, empty mail
//fi.FullName = C:\<subdirectories>\009.msg
rdoMail.Import(fi.FullName, rdoSaveAsType.olMSGUnicode);
rdoMail.Save();
//Save as MHT
rdoMail.SaveAs(diMht.FullName + @"\" + strNormalizedSubject + ".mht", Redemption.rdoSaveAsType.olMHTML);
此代碼不能味精導入到PST。我收到此異常: {"Error importing: 0x8004011B"}
我也試過這種方法,它不依賴於PST。
RDOMail rdoMail = rdoSession.GetMessageFromMsgFile(fi.FullName, false);
string strNormalizedSubject = NormalizeSubject(rdoMail.Subject);
rdoMail.SaveAs(diMht.FullName + @"\" + strNormalizedSubject + ".mht", Redemption.rdoSaveAsType.olMHTML);
此代碼導致以下例外情況:Error in OpenIMsgOnIStg: MAPI_E_CORRUPT_DATA
。
我相信Transend Migrator可以將MSGs轉換爲大數字或收件人。但是,由於許可成本高,這不是一個選擇。
如何將MSG保存爲其他格式?
我相信被報告爲腐敗的數據是味精。我想導入MSG的PST很好,我可以導入其他MSG而沒有問題。 MSG有成千上萬的收件人,這使得Outlook無法打開它。我有兩個版本的009.msg,一個是使用OutlookSpy創建的,另一個是通過將郵件從PST拖動到我的桌面創建的。兩者都表現出相同的行爲。 – 2013-03-22 18:04:15
如果您可以重新創建它們,請將它們保存爲olMsgUnicode格式而不是olMsg。 – 2013-03-23 21:39:26
嘗試使用olMsgUnicode從PST源重新創建MSG導致此OutlookSpy腳本錯誤:'沒有足夠的可用內存來運行此程序。退出一個或多個程序,然後重試。「通常,我無法指定源MSG的格式。我從許多客戶處獲得MSG,他們可能會使用各種系統。我仍然認爲這個問題是大量的收件人。 – 2013-03-25 20:59:24