2016-03-18 47 views
1

我已經創建了一個腳本來發送每週報告,但我不知道如果實現狀態消息,如果電子郵件成功發送。目前,我只是收到一條確認發送消息的消息,但並不真正檢查電子郵件是否已發送。 這是我的腳本:vbscript檢查是否發送電子郵件

Dim fso, path, file, recentDate, recentFile, ToAddress, FromAddress, MessageSubject, MyTime, MessageBody, MessageAttachment, ol, ns, newMail 
Set fso = CreateObject("Scripting.FileSystemObject") 
Set recentFile = Nothing 
For Each file in fso.GetFolder("C:\REPORTData\temp").Files 
    If (recentFile is Nothing) Then 
    If UCase(fso.GetExtensionName(file.name)) <> "PDF" Then 
     Set recentFile = file 
    End If 
    ElseIf (file.DateLastModified > recentFile.DateLastModified) Then 
    If UCase(fso.GetExtensionName(file.name)) <> "PDF" Then 
     Set recentFile = file 
    End If 
    End If 
Next 
ToAddress = "[email protected]" 
MessageSubject = "Emailing: "+recentFile.Name 
MessageBody = "Your message is ready to be sent with the following file or link attachments: "+recentFile.Name 
MessageAttachment = "C:\REPORTData\temp\"+recentFile.Name 
Set ol = WScript.CreateObject("Outlook.Application") 
Set ns = ol.getNamespace("MAPI") 
Set newMail = ol.CreateItem(olMailItem) 
newMail.Subject = MessageSubject 
newMail.Body = MessageBody 
newMail.RecipIents.Add(ToAddress) 
newMail.Attachments.Add(MessageAttachment) 
CurrentWeek = Right(recentFile.Name, 2) 
result = MsgBox ("Send REPORT for week: "+CurrentWeek, vbYesNo + vbQuestion, "REPORT Sender v.0.1") 
Select Case result 
Case vbYes 
    newMail.Send 
    Set shell = CreateObject("Wscript.Shell") 
    shell.Popup "Your REPORT for week "+CurrentWeek+" has been sent", 2, "SUCCESS" 
Case vbNo 
End Select 

回答

2
Set emailObj  = CreateObject("CDO.Message") 
emailObj.From  = "[email protected]" 

emailObj.To  = "[email protected]" 

emailObj.Subject = "Test CDO" 
emailObj.TextBody = "Test CDO" 

emailObj.AddAttachment "c:\windows\win.ini" 

Set emailConfig = emailObj.Configuration 

emailConfig.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.gmail.com" 
emailConfig.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 465 
emailConfig.Fields("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2 
emailConfig.Fields("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1 
emailConfig.Fields("http://schemas.microsoft.com/cdo/configuration/smtpusessl")  = true 
emailConfig.Fields("http://schemas.microsoft.com/cdo/configuration/sendusername") = "username" 
emailConfig.Fields("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "password" 
emailConfig.Fields.Update 

emailObj.Send 

If err.number = 0 then 
    Msgbox "Done" 
Else 
    Msgbox err.number 
End if 

是如何。

相關問題