2016-01-19 20 views
5

Ho un requisito per scaricare un modello html come file OFT in un'applicazione Web ASP.Net MVC4 (utilizzando C#). Ho già provato Microsoft.Office.Interop.Outlook, che funziona perfettamente sul mio computer locale ma non funziona sul server. Richiede l'installazione di Outlook nel server e ho anche sentito che non è una buona pratica automatizzare le applicazioni MS Office nel server per un'applicazione web. È possibile creare un file spesso senza utilizzare MS Office Outlook? Esistono librerie libere per fare ciò? Qualcuno conosce una soluzione per favore aiuto.Creazione di un modello di Outlook (.oft) in un'applicazione ASP.Net MVC

risposta

1

Il file OFT è un file MSG con un GUID di classe diversa. Il file MSG è un file di archiviazione OLE (IStorage).

Dal formato di file MSG è documented, è possibile creare un file MSG con CLSID {0006F046-0000-0000-C000-000000000046} invece di {00020D0B-0000-0000-C000-000000000046}.

È inoltre possibile utilizzare Redemption - la sua RDO family of objects può essere utilizzato in un servizio, è solo bisogno di assicurarsi che sia installato Outlook con il numero di bit corrispondente (Redemption utilizza il sistema MAPI installato da Outlook, non il modello a oggetti di Outlook, che non può essere utilizzato in un servizio).

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# (la parte superiore della mia testa):

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);