2017-02-16 3 views
1

Ich muss eine sehr einfache E-Mail mit nur Text an ein paar Empfänger senden, aber ich bekomme einen Fehler.E-Mail wird nicht über VBS-Skript gesendet

Ich habe keinen SMTP-Server, um E-Mails zu senden, aber ich habe einen Ausblick und ich bin über die Desktop-App angemeldet.

Hier ist das Skript so weit:

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 

Wenn das Skript ausgeführt wird, WSH gibt dem Fehler

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

Dies ist die objMail.Send Linie.

Und mein Outlook erscheint mit dem richtigen Empfänger/Betreff/Körper, aber es sendet nicht. Ich kann nichts zu diesem Problem finden oder eine Arbeit neben der Verwendung eines SMTP-Servers, die, soweit ich weiß, kann ich nicht tun.

+0

Lassen Sie mich wissen, ob es für Sie gearbeitet ... – 0m3r

+0

Tut mir leid, nicht reagiert. Ich habe herausgefunden, dass es ein Firewall-Problem gibt, das dazu führt, dass keine E-Mails gesendet werden. Mein Skript funktioniert jetzt. – Ausche

Antwort

1

Ich habe eine Funktion definiert und im täglichen Gebrauch, die die verschiedenen Elemente zum Erstellen und Senden der E-Mail akzeptiert. Denken Sie daran, wenn Sie Ihre Outlook-Instanz erstellen müssen, müssen Sie sich mit dem entsprechenden Mail-Profil anmelden, um etwas senden zu können. Das Profil, das wir hier verwenden, wird nur "Outlook" genannt. Überprüfen Sie, was Ihr genannt wird und schließen Sie die Namespace Sachen ein, die ich in meinen habe.

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

Der Versuch, dies zu tun, aber was sollte ich den oWMIService setzen, um die Win32_processes abzufragen? – Ausche

+0

Entschuldigung, verpasste diese Erklärung. Bearbeitete Antwort. – Dave

+0

Okay, jetzt mag es den Parameter 'olFolderInbox' nicht und bekommt' Ungültiger Prozeduraufruf oder Argument: 'GetDefaultFolder''. – Ausche

0

ist hier Grund Vbscript einfache E-Mail

' 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 

Speichern ist als name.vbs

Verwandte Themen