2016-01-19 25 views
5

Tôi đã yêu cầu tải xuống mẫu html dưới dạng tệp OFT trong ứng dụng web ASP.Net MVC4 (sử dụng C#). Tôi đã thử Microsoft.Office.Interop.Outlook, hoạt động hoàn hảo trong máy cục bộ của tôi nhưng không hoạt động trong máy chủ. Nó đòi hỏi Outlook phải được cài đặt trong máy chủ và tôi cũng nghe nói nó không phải là một thực hành tốt để tự động hóa các ứng dụng văn phòng MS trong máy chủ cho một ứng dụng web. Có thể tạo một tập tin không cần sử dụng MS Office Outlook không? Có thư viện miễn phí nào để thực hiện việc này không? Bất cứ ai biết một giải pháp xin vui lòng giúp đỡ.Tạo tệp mẫu Outlook (.oft) trong ứng dụng ASP.Net MVC

Trả lời

1

Tệp OFT là tệp MSG có lớp GUID khác. Tệp MSG là tệp OLE Storage (IStorage).

Vì định dạng tệp MSG là documented, bạn có thể tạo tệp MSG có CLSID là {0006F046-0000-0000-C000-000000000046} thay vì {00020D0B-0000-0000-C000-000000000046}. Bạn cũng có thể sử dụng Redemption - RDO family of objects của nó có thể được sử dụng trong một dịch vụ, bạn chỉ cần đảm bảo rằng Outlook với bit khớp được cài đặt (Redemption sử dụng hệ thống MAPI được cài đặt bởi Outlook, chứ không phải Mô hình đối tượng Outlook, không thể được sử dụng trong một dịch vụ).

VB script:

set Session = CreateObject("Redemption.RDOSession") 
    set Msg = Session.CreateMessageFromMsgFile("c:\Temp\TestMsg.msg") 
    Msg.Body = "This is a test template" 
    Msg.Subject = "Template" 
    Msg.Save 
    Msg.SaveAs "c:\Temp\TestTemplate.oft", olTemplate 

C# (ra khỏi đỉnh đầu của tôi):

Redemption.RDOSession rSession = new Redemption.RDOSession(); 
    Redemption.RDOMail Msg = rSession.CreateMessageFromMsgFile("c:\Temp\TestMsg.msg"); 
    Msg.Body = "This is a test template"; 
    Msg.Subject = "Template"; 
    Msg.Save(); 
    Msg.SaveAs("c:\Temp\TestTemplate.oft", Redemption.rdoSaveAsType.olTemplate); 
Các vấn đề liên quan