首页 > 解决方案 > .Exe 文件未通过任务计划程序 C# 提供输出

问题描述

我有一个用于在 Outlook 上发送邮件的控制台应用程序。当我尝试通过双击运行它的 .exe 时,它​​运行良好并且电子邮件已发送,但是当我尝试通过 Windows 任务计划程序安排它时,它不会发送任何邮件。在任务计划程序中,它显示任务已成功完成,但不发送任何邮件。我尝试了针对同一类型问题提出的各种解决方案,但没有运气。请如果有人可以提出任何建议。

 Application app = new Application();
        MailItem mailItem = app.CreateItem(OlItemType.olMailItem);
        mailItem.Subject = "Test mail";
        mailItem.To = "xxx@microsoft.com";
        mailItem.Body = "Test body";
        mailItem.Send();
        Console.WriteLine("mail send.....");

标签: c#outlookwindows-task-scheduler

解决方案


Microsoft 目前不推荐也不支持任何无人值守、非交互式客户端应用程序或组件(包括 ASP、ASP.NET、DCOM 和 NT 服务)的 Microsoft Office 应用程序自动化,因为 Office 可能表现出不稳定的行为和/或在此环境中运行 Office 时出现死锁。

如果您正在构建在服务器端上下文中运行的解决方案,您应该尝试使用已确保无人值守执行安全的组件。或者,您应该尝试找到允许至少部分代码在客户端运行的替代方案。如果您使用来自服务器端解决方案的 Office 应用程序,该应用程序将缺少许多成功运行所需的功能。此外,您将承担整体解决方案稳定性的风险。

在Office 服务器端自动化的注意事项文章中阅读有关此内容的更多信息。

您可以考虑作为一种可能的解决方法:

  1. 使用 Exchange Web 服务,有关详细信息,请参阅开始在 Exchange 中使用 Web 服务。
  2. Outlook 所基于的低级 API - 扩展 MAPI。或者只是围绕 API 的任何第三方库,例如 Redemption。

推荐阅读