Электронная почта Outlook, отправляемая автоматически через vba, не работает, когда запланирован тот же макрос в планировщике задач Windows - PullRequest
0 голосов
/ 11 июля 2019

У меня есть код макроса, который автоматически отправляет электронную почту. Когда это было сделано с помощью нажатия кнопки, это работало нормально. Я запланировал один и тот же макрос периодически запускать через планировщик задач., Но почта попадает в черновик и не отправляется.

Проблема 1: если я использую .send в почте, он запрашивает всплывающее окно с опцией разрешения или отказа

Проблема 2: чтобы избежать появления всплывающего окна, я использовал .display, дождался приложения и sendkeys -> это работает, когда запускается через нажатие кнопки, но когда запускается через планировщик, электронная почта остается в черновой стадии, а не послал.

Пожалуйста, оставьте свой комментарий

1 Ответ

0 голосов
/ 11 июля 2019

Проблема 1: если я использую .send в почте, он запрашивает всплывающее окно с опцией разрешения или отказа

Это стандартная подсказка безопасности в Outlook. «Безопасность» в данном контексте относится к так называемой «защите объектной модели», которая запускает запросы безопасности и блокирует доступ к определенным функциям, пытаясь предотвратить сбор вредоносных программ с адресов электронной почты из данных Outlook и использование Outlook для распространения вирусов и спама. Эти запросы нельзя просто отключить, кроме как в Outlook 2007 с запущенным антивирусным приложением. На этой странице обсуждаются стратегии обхода запросов безопасности.

Проблема 2: чтобы избежать появления всплывающего окна, я использовал .display, дождался приложения и sendkeys ->

Все текущие версии Microsoft Office были разработаны, протестированы и настроены для работы в качестве продуктов конечного пользователя на клиентской рабочей станции. Они предполагают наличие интерактивного рабочего стола и профиля пользователя. Они не обеспечивают уровень повторного входа или безопасности, который необходим для удовлетворения потребностей серверных компонентов, предназначенных для работы без присмотра.

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

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

В качестве возможного обходного пути вы можете использовать низкоуровневый API, который не вызывает запросы безопасности - Extended MAPI. Или просто любые обертки вокруг этого API, такие как Redemption. Это позволяет решить обе проблемы.

...