Письма не отправляются при вызове нескольких скриптов - PullRequest
0 голосов
/ 05 февраля 2020

Добрый день - у меня есть «триггерный файл», который вызывает несколько скриптов для запуска некоторых утренних отчетов. Каждый вызываемый скрипт содержит код, который прикрепляет файл к электронной почте и отправляет (через ComObject). Если я запускаю каждый скрипт по отдельности, то все письма отправляются правильно. Однако, когда я запускаю «файл триггера», отправляется только пара писем, и я не получаю никаких сообщений об ошибках. Есть идеи, что происходит? Я специально заставил триггерный файл запускать сценарии одновременно, чтобы сэкономить время. Но это перегрузка Outlook?

РЕДАКТИРОВАТЬ: обновленный код, чтобы включить блок Try / Catch. Есть 8 сценариев, которые запускаются с использованием этого шаблона. Все 8 успешно завершить Excel открыть / запустить / сохранить. Тем не менее, только некоторые письма отправляются. И даже с этим блоком Try / Catch сообщение об ошибке не отправляется.

#Establish script file locale
    $FullPath = “//fullpath/”
    $SavePath = “//savepath/”

#Open Excel file
& {
    $Excel = New-Object -ComObject excel.application
    $Excel.Visible=$False
    $Workbook = $Excel.Workbooks.Open($FullPath)

#Run Macro
    $app=$Excel.Application
    $app.Run("Macro1")

#Save and close Excel
    $Excel.Application.DisplayAlerts=$False
    $Workbook.SaveAs($SavePath,51)
    $Workbook.Close()
    $Excel.Quit()
}

#Send email with attachment
Try
{
    $EmailSettings=@{
        SMTPServer = "smtp"
        From = "me@email.com" 
        To = 
            @(
            "you@email.com"
            )
        Subject = "Subject"
        Attachments = $SavePath
        BodyAsHtml = $true
        Body =
            "<body><p>
            Attached is the thing.
            </b></p></body>"
    }
    Send-MailMessage @EmailSettings
}
Catch
{
$Subject = 'ERROR: '+$EmailSettings.Subject
$ErrorMessage = $_.Exception.Message+' '+$_.Exception.ItemName
Send-MailMessage -From me@email.com -To me@email.com -Subject $Subject -SmtpServer smtp -Body $ErrorMessage
} 

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...