在IIS中使用C#新建Outlook窗口

本文关键字:新建 Outlook 窗口 IIS | 更新日期: 2023-09-27 18:24:14

我试图打开带有body的outlook窗口来发送消息。当我和我的本地人一起工作时,它会完美地打开。但是当我使用IIS时,outlook窗口不会打开。

public static void SendMailInOutlook(Page CurrentPage, Type ScriptType,
    string Subject, string Recipients, Dictionary<string, string> emailInputs, 
    string emailTemplatePath)
{
    static Microsoft.Office.Interop.Outlook.Application outlookApp;
    static Microsoft.Office.Interop.Outlook._MailItem mailItem;
    outlookApp = new Microsoft.Office.Interop.Outlook.Application();
    mailItem = (Microsoft.Office.Interop.Outlook._MailItem)outlookApp.CreateItem(
        Microsoft.Office.Interop.Outlook.OlItemType.olMailItem);
    mailItem.Subject = Subject;
    mailItem.To = Recipients;
    mailItem.HTMLBody = SendMail.GetEmailContent(emailInputs, emailTemplatePath);
    Thread newThread = new Thread(SendEmailToOutLook);
    newThread.Start();                    
} 
static void SendEmailToOutLook()
{
    string sMsg = "Email sent successfully.";
    try
    {
        mailItem.Display(true);
    }
    catch (Exception ex)
    {
        sMsg = ex.Message;
    }
}

在IIS中使用C#新建Outlook窗口

它不会。您的代码绑定是在web服务器上执行的,而不是在客户端机器上。因此,当您在本地开发并在本地运行web应用程序时,代码会在同一台机器上执行,因此"可以工作"。但一旦部署,"Outlook代码"就会在与浏览器所在的机器不同的机器上执行。它无法工作。

这个需求最常见的方法是"mailto链接",类似于<a href='mailto:a@b.com'...