调用多个脚本时电子邮件未发送

时间:2020-02-05 14:27:23

标签: powershell outlook automation

下午好- 我有一个“触发文件”,它调用了几个脚本来运行一些早间报告。每个被调用的脚本都包含将文件附加到电子邮件并发送(通过ComObject)的代码。如果我分别运行每个脚本,那么所有电子邮件都会正确发送。但是,当我运行“触发文件”时,仅发送了几封电子邮件,而我没有收到任何错误消息。有什么想法吗?我故意使触发文件同时运行脚本以节省时间。但这是Outlook超载吗?

编辑:更新了代码以包括“尝试/捕获”块。使用此模板运行的脚本有8个。所有8个都成功完成了excel打开/运行/保存。但是,只有一些电子邮件发送。即使使用了该“尝试/捕获”块,也不会发送任何错误消息。

Public Class frmHTMLPrint

Public Shared formHandle As frmHTMLPrint

Private Sub wbPrintHtml_DocumentCompleted(sender As Object, e As WebBrowserDocumentCompletedEventArgs) Handles wbPrintHtml.DocumentCompleted
    Dim wbPrinter As WebBrowser = CType(sender, WebBrowser)
    If wbPrinter.ReadyState = WebBrowserReadyState.Complete AndAlso Not wbPrinter.Url.ToString() = "about:blank" Then
        wbPrinter.Print()
    End If
End Sub

Shared Function setURL(url As Reporter.ReportServer.PrintMessageType) As Boolean
    If formHandle.wbPrintHtml.InvokeRequired Then
        If url.SourcePathFileName = "about:blank" Then
            formHandle.wbPrintHtml.Invoke(CType(Sub()
                                                    formHandle.wbPrintHtml.Navigate(url.SourcePathFileName)
                                                End Sub, MethodInvoker))
        Else
            formHandle.wbPrintHtml.Invoke(CType(Sub()
                                                    formHandle.wbPrintHtml.Navigate("file:///" & url.SourcePathFileName)
                                                End Sub, MethodInvoker))
        End If
        Dim wbReady As WebBrowserReadyState
        formHandle.wbPrintHtml.Invoke(CType(Sub()
                                                wbReady = formHandle.wbPrintHtml.ReadyState
                                            End Sub, MethodInvoker))
        While ((Not wbReady = WebBrowserReadyState.Complete))
            Application.DoEvents()
            formHandle.wbPrintHtml.Invoke(CType(Sub()
                                                    wbReady = formHandle.wbPrintHtml.ReadyState
                                                End Sub, MethodInvoker))
        End While
        Return wbReady = 4
    Else
        If url.SourcePathFileName = "about:blank" Then
            formHandle.wbPrintHtml.Navigate(url.SourcePathFileName)
        Else
            formHandle.wbPrintHtml.Navigate("file:///" & url.SourcePathFileName)
        End If
        While ((Not formHandle.wbPrintHtml.ReadyState = WebBrowserReadyState.Complete))
            Application.DoEvents()
        End While
        Return formHandle.wbPrintHtml.ReadyState = 4
    End If
End Function

Private Sub frmHTMLPrint_Load() Handles Me.Load
    InitializeComponent()
    Dim wbInitializer As New Reporter.ReportServer.PrintMessageType
    formHandle = Me
    wbInitializer.SourcePathFileName = "about:blank"
    setURL(wbInitializer)
End Sub

0 个答案:

没有答案