我正試圖從.msg
轉換爲.eml
文件格式使用Aspose.Email for .NET。很瑣碎:.msg到.eml文件使用Aspose.Email缺少日曆數據
var msg = MapiMessage.FromFile(@"example.msg");
MailMessageInterpretor mmi = MailMessageInterpretorFactory.Instance.GetIntepretor(msg.MessageClass);
MailMessage eml = mmi.Interpret(msg);
eml.Save(@"example.eml");
如果其日曆邀請,我看到它在.msg
文件,並在.eml
文件,如下圖所示(在底部.msg
頂部,.eml
):
它還包括.eml
內會議.ics
文件時,它產生:
內容類型:文字/日曆;方法= 「REQUEST」; NAME = 「meeting.ics的」; 的charset = 「UTF-8」 內容傳輸編碼:的base64
然而,問題是,如果它是一個會議取消,而不是一個邀請:
由此產生的.eml
如您所見,不包含包含會議詳細信息,也不會產生.eml
包含會議的任何跟蹤.ics
(其中確實存在於.msg
中)。我可以很容易地解析.msg
它:
MapiCalendar calendar = (MapiCalendar)msg.ToMapiMessageItem();
爲什麼不鹼基64在所得.eml
編碼.ics
用於取消?難道我做錯了什麼?這是一個Aspose錯誤嗎?這是正常的行爲嗎?這裏發生了什麼?
對不起,我沒有在論壇上的帳戶。然而,再現步驟非常簡單。 ** 1。**在Exchange上向某人發送會議請求。 ** 2。**在交易所上向該人發送會議取消通知。 ** 3。讓該人保存會議取消電子郵件(雙擊Exchange中的電子郵件,轉到文件,然後另存爲,它將保存爲'.msg'格式)。 ** 4.使用我上面的'.msg'文件中的代碼將它轉換爲'.eml',你會發現它不會保留日曆取消(在最新版本的* Aspose.Email *上進行測試) * *的NuGet)。 – Alexandru
請嘗試InterpretAsTnef。雖然它也應該與Interpret一起工作,但它似乎是API的一個問題。我們正在調查這個問題,但是,您可以同時使用InterpretAsTnef。 您可以在www.Aspose.com上免費註冊。無論是付費用戶還是非付費用戶,我們的基本支持都是免費的。 –
InterpretAsTnef似乎工作,謝謝。 – Alexandru