我正在開發一個涉及創建電子郵件聯繫人並將郵件轉發給該聯繫人的腳本。腳本的最後部分是自動發送測試郵件到地址以確保轉發工作。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