Синтаксис не изменяется между командной строкой и файлом сценария. Какие изменения происходят, как быстро выполняются команды. Если вы их вводите, между каждой командой будет много задержки. Но если они запускаются из сценария, они быстрее представлены в Outlook.
Простой способ исправить это - добавить Sleep 1
(или аналогичный) перед командой, которая терпит неудачу. Не видя вывода ошибки, я бы предположил, что вы хотите спать после CreateItem и, возможно, перед отправкой. Но если вы внимательно посмотрите на сообщения об ошибках, вы увидите, что они идентифицируют, какая строка сценария не удалась. Положите Sleep перед первой неудачной строкой. Повторите сценарий. Если новая строка терпит неудачу, поставьте перед ней задержку. Если первая строка все еще не работает, вы можете попробовать Sleep 2
. Вы также можете сделать Сон короче. В течение 1/2 секунды: Sleep -milliseconds 500
.
IF add Sleeps устраняет проблемы - другими словами, проблема связана с синхронизацией, может быть что-то в объектной модели Outlook, которую вы могли бы использовать, это не было бы так же хаки, как использование Sleeps.
Я не смог воспроизвести это при установке Outlook 2010. Однако я просмотрел альтернативный метод отправки электронной почты с PS (ниже). Возможно, этот метод будет работать.
$i=$o.Session.folders.item(2).folders.item("Outbox").items.add(0)
$i.to="[email protected]"
$i.Subject="a wittle testy"
$i.Body="some body"
$i.send()
Хорошее предложение, но я не добавите Sleep 10 под каждую команду в конце концов, и до сих пор не повезло. Любые другие идеи? – user2554585
Пожалуйста, разместите сообщения об ошибках, которые вы получаете, особенно первые несколько, но все будет лучше. –