Я разрабатываю скрипт, который включает в себя создание контакта электронной почты и пересылку почты этому контакту. Последняя часть скрипта - это автоматическая отправка тестового письма по адресу, чтобы убедиться, что пересылка работает.PowerShell Outlook отправить письмо
Поэтому я использую следующий код:
[void] [Reflection.Assembly]::LoadWithPartialName("Microsoft.Office.Core")
[void] [Reflection.Assembly]::LoadWithPartialName("Microsoft.Office.Interop.Outlook")
$olApp = New-Object Microsoft.Office.Interop.Outlook.ApplicationClass
$msg = $olApp.CreateItem(0)
$msg.Recipients.Add("[email protected]")
$msg.Subject = "test"
$msg.Body = "test"
$msg.Send()
Я получаю сообщение об ошибке в строке 6: "You cannot call a method on a null-valued expression."
Я бегу код у себя дома, он работает просто отлично. Разница: в домене на работе, используя Exchange Server на работе, используя учетную запись домена на работе.
Я использую ту же версию Powershell и Outlook на обеих машинах. Предпочтительно использовать Outlook для отправки сообщения, потому что у меня уже открыт Outlook, и таким образом сообщение появится в моей папке «Отправленные».
Материал, который я пишу, неявно уполномочен находиться в сети. Вещи, которые другие люди пишут, должны пройти через большой процесс утверждения. Это не обязательно для массового, а скорее для того, чтобы превратить то, что раньше было 5-минутной работой, в 30-секундную задачу. Кроме того, я не знаю SMTP-сервера. – Orihara 2008-12-05 01:01:13