У меня есть сайт ASP.NET, который должен иметь возможность динамически генерировать электронное письмо, которое будет отправлено обратно на локальную машину пользователя, а затем будет отправлено через Outlook. Код ниже делает именно это, но он использует Outlook Interop для создания сообщения, и я немного не решался использовать Interop в веб-приложении. Я просмотрел OpenXML, но не мог найти многого в Outlook.Создать Oulook Email с сервера
// Creates a new Outlook Application Instance
Microsoft.Office.Interop.Outlook.Application objOutlook = new Microsoft.Office.Interop.Outlook.Application();
// Creating a new Outlook Message from the Outlook Application Instance
Microsoft.Office.Interop.Outlook.MailItem mic = (Microsoft.Office.Interop.Outlook.MailItem)(objOutlook.CreateItem(Microsoft.Office.Interop.Outlook.OlItemType.olMailItem));
mic.To = "[email protected]";
mic.CC = "[email protected]";
mic.Subject = "Test Subject";
mic.HTMLBody = "Test Message Body";
string strNewEmailPath = strEmailPath + "\\EmailMessages\\" + strUser + "_Message_PEI.msg";
mic.SaveAs(strNewEmailPath, Microsoft.Office.Interop.Outlook.OlSaveAsType.olMSG);
HttpContext.Current.Response.ContentType = "application/vnd.ms-outlook";
HttpContext.Current.Response.AppendHeader("Content-Disposition", "attachment; filename=Message.msg");
HttpContext.Current.Response.TransmitFile(strNewEmailPath);
HttpContext.Current.Response.End();
Может ли кто-нибудь помочь с возможно лучшим предложением для автоматизации сообщения Outlook с помощью ASP.NET?
Update:
Я нашел код Javascript, который, кажется, имеют подобные функциональные возможности.
var theApp //Reference to Outlook.Application
var theMailItem //Outlook.mailItem
//Attach Files to the email, Construct the Email including
//To(address),subject,body
var subject = sub
var msg = body
//Create a object of Outlook.Application
try
{
var theApp = new ActiveXObject("Outlook.Application")
var theMailItem = theApp.CreateItem(0) // value 0 = MailItem
//Bind the variables with the email
theMailItem.to = to
theMailItem.Subject = (subject);
theMailItem.Body = (msg);
//Show the mail before sending for review purpose
//You can directly use the theMailItem.send() function
//if you do not want to show the message.
theMailItem.display()
}
catch(err)
{
alert("Error");
}
Вы должны сгенерировать MIME-файл напрямую, без Outlook. – SLaks
Любой пример кода о том, как это делается? Файлы .msg Outlook не основаны на тексте. – chrisg229
Если этот JavaScript работает для вас, тогда поставьте его как ответ (а не как часть вопроса). Если это не сработает, тогда объясните, почему. – mason