.Exe файл не выводит данные через планировщик заданий C# - PullRequest
0 голосов
/ 17 июня 2020

У меня есть консольное приложение для отправки писем в Outlook. Когда я пытаюсь запустить его .exe двойным щелчком по нему, он работает нормально, и электронные письма доставляются, но когда я пытаюсь запланировать его через Windows Task Scheduler, он не отправляет почту. В планировщике задач он показывает, что задача успешно завершена, но не отправляет почту. Я пробовал различные решения, предлагаемые для того же типа вопросов, но не повезло. Пожалуйста, если кто-нибудь может что-нибудь предложить.

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

1 Ответ

0 голосов
/ 17 июня 2020

Microsoft в настоящее время не рекомендует и не поддерживает автоматизацию приложений Microsoft Office из любых автоматических, неинтерактивных клиентских приложений или компонентов (включая ASP, ASP. NET, DCOM и NT Services) , поскольку Office может демонстрировать нестабильное поведение и / или взаимоблокировку при запуске Office в этой среде.

Если вы создаете решение, работающее в контексте на стороне сервера, вы должны попытаться использовать компоненты, которые были созданы безопасен для выполнения без присмотра. Или вам следует попытаться найти альтернативы, которые позволяют запускать хотя бы часть кода на стороне клиента. Если вы используете приложение Office из серверного решения, у этого приложения не будет многих необходимых возможностей для успешной работы. Кроме того, вы рискуете стабильностью всего решения.

Подробнее об этом читайте в статье Рекомендации по серверной автоматизации Office .

Вы можете рассмотреть в качестве возможного обходного пути:

  1. Используйте веб-службы Exchange, см. Начать использовать веб-службы в Exchange для получения дополнительной информации.
  2. Низкоуровневый API, на котором основан Outlook - Расширенный MAPI. Или просто любые сторонние библиотеки вокруг API, такие как Redemption.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...