2017-02-16 85 views
1

我需要向一些收件人發送僅包含文本的簡單電子郵件,但發生錯誤。電子郵件不會通過VBS腳本發送

我沒有SMTP服務器來發送電子郵件通過,但我有一個前景,我通過桌面應用程序登錄。

這裏的腳本至今:

Set objOutlook = CreateObject("Outlook.Application") 
Set objMail = objOutlook.CreateItem(0) 
objMail.Display 

objMail.to = "[email protected]" 
objMail.Subject = "Test" 
objMail.Body = "test" 

objMail.Send 

objOutlook.Quit 

Set objMail = Nothing 
Set objOutlook = Nothing 

當腳本運行,WSH提供錯誤

line: 10 
char: 1 
error: Operation Aborted 
source: (null) 

這是objMail.Send線。

我的outlook會彈出適當的收件人/主題/正文,但不會發送。 我找不到任何與此問題有關的內容,或者使用SMTP服務器,但據我所知我無法做到。

+0

讓我知道,如果它的工作對你... – 0m3r

+0

很抱歉沒有響應。我發現有防火牆問題導致電子郵件無法發送。我的腳本現在有效。 – Ausche

回答

1

我有一個定義和日常使用的功能,它接受創建和發送電子郵件的各種項目。請記住,如果您必須創建Outlook實例,則需要使用適當的郵件配置文件登錄才能發送任何內容。我們在這裏使用的配置文件被稱爲「Outlook」。檢查你的電話號碼,幷包括Namespace我的東西。

Dim sComputer : sComputer = "." ' selects local machine 
Dim oWMIService : Set oWMIService = GetObject("winmgmts:\\" & sComputer & "\root\cimv2") 
Dim colItems : Set colItems = oWMIService.ExecQuery ("Select * from Win32_Process Where Name = 'outlook.exe'") 
Dim oOutlook : Set oOutlook = CreateObject("Outlook.Application") 
Dim oNamespace : Set oNamespace = oOutlook.GetNamespace("MAPI") 
If colItems.Count = 0 Then 
    LOG_Write "Outlook isn't open, logging onto it..." 
    oNamespace.Logon "Outlook",,False,True ' name of Outlook profile 
    bOpenedOutlook = True 
End If 
Dim oFolder : Set oFolder = oNamespace.GetDefaultFolder(olFolderInbox) 
oFolder.Display ' Make Outlook visible 
+0

試圖做到這一點,但我應該設置oWMIService以查詢Win32_processes? – Ausche

+0

對不起,錯過了這個聲明。編輯答案。 – Dave

+0

好吧,現在它不喜歡'olFolderInbox'參數,獲取'無效的過程調用或參數:'GetDefaultFolder''。 – Ausche

0

這裏是基本VBScript簡單的電子郵件

' For Example... 
Email_List = "[email protected];" 

Set App = CreateObject("Outlook.Application") 
Set Mail = App.CreateItem(0) 

With Mail 
    .To = Email_List 
    .CC = "" 
    .BCC = "" 
    .Subject = "Hello World" 
    .HTMLBody = "Bla Bla!!!" 
    '.Body = strbody 
    'You can add a file like this 
'    .Attachments.Add (FilePath) 

    'use .Send (to send) or .Display (to display the email and edit before sending) 
    .Display 
    .send 
End With 

Set Mail = Nothing 
Set App = Nothing 

保存是name.vbs