Метод Outlook VBscript .Send останавливает скрипты

Я разрабатываю скрипт для отправки электронного письма в соответствии с определенными входными данными, я могу создать электронное письмо, но не отправить его с помощью метода .Send.

Я получаю следующую ошибку: (обратите внимание, что строка соответствует использованию .Send в исходном случае)

введите здесь описание изображения

Я уже успешно отправлял электронные письма, используя метод .SendKeys(^~), но я хотел бы использовать для этого объект Outlook, а не просто отправлять ярлыки.

Это мой текущий код:

' Declare all variables that will be used later on
    Dim outobj, mailobj, emailto, cc, subject, body, attachement
    Dim strFileText 
    Dim objFileToRead   
    Dim splitEmailto 

' Set the outlook application object
    Set outobj = CreateObject("Outlook.Application")  

' set the namespace
    Set myNamespace = outobj.GetNameSpace("MAPI")
    msgbox myNamespace.Folders(2)

' Set the mail item object
    Set mailobj = outobj.CreateItem(olMailItem) 

' Set a shell
    Set WshShell = WScript.CreateObject("WScript.shell")

' Get all the argument and assign
    emailto = "[email protected]"
    cc = "[email protected]"
    subject = "Simple Email"
    body = "Some Text"
    attachement = "C:\Users\name\Desktop\fileName.xls"

' Craft the email object
    With mailobj

        .Display

        ' assign the tos
        .To = cstr(emailto)

        ' add CCs
        .CC = cstr(cc)

        ' attach the relevant files
        If attachement <> "" Then
            If instr(attachement, ";") Then
                splitAtt = split(attachement, ";")
                For Each att In splitAtt 
                    If att <> "" Then
                        .Attachments.add cstr(att)
                    End If
                Next
            Else
                .Attachments.add cstr(attachement)
            End If
        End If

        If Subject <> "" Then
            .Subject = Subject ' sets the subject   
        End If

        If body <> "" Then
            .Body = body ' sets the body
        End If

        .Send

    End With

' Clear the memory
    Set outobj = Nothing
    Set mailobj = Nothing

' check for no more events in the sending event

' Report out & Quits
    WScript.StdOut.WriteLine("Email sent")
    WScript.Quit

Я хотел бы иметь возможность отправить электронное письмо с .Send. Есть идеи?


person mikegross    schedule 23.04.2019    source источник
comment
Примечание. Я также добавил метод входа в систему через NameSpace, чтобы убедиться, что я вошел в систему. Ничего не менял...   -  person mikegross    schedule 23.04.2019


Ответы (1)


Ошибка E_ABORT. Почему вы показываете сообщение и сразу же вызываете Send? Вы либо отображаете сообщение (отображаете, но не отправляете), либо просто отправляете его без отображения (отправляете, но не отправляете).

person Dmitry Streblechenko    schedule 23.04.2019
comment
.Display здесь на самом деле просто для целей визуального тестирования. Но даже если я удалю .Display и использую только .Send, это не сработает, и возникнет та же ошибка.... - person mikegross; 23.04.2019
comment
Отображаемое сообщение выглядит нормально со всеми получателями и вложениями? Будет ли он отправлен, если вы нажмете «Отправить»? - person Dmitry Streblechenko; 23.04.2019
comment
Да всем, он также отправляется, если я .SendKeys("^~") - person mikegross; 23.04.2019
comment
Может быть, быстрая точность: я нахожусь в учетной записи Exchange (только что заметил это) - person mikegross; 23.04.2019
comment
У вас есть обновленное антивирусное приложение на вашем компьютере? - person Dmitry Streblechenko; 23.04.2019
comment
Если вы имеете в виду антивирус, то, вероятно, да, поскольку я работаю на корпоративном ноутбуке. Блокирует определенные функции? - person mikegross; 24.04.2019
comment
Да, если антивирусное приложение не установлено или его определения устарели, Outlook начнет блокировать определенные функции, отображая подсказки или возвращая ошибки. - person Dmitry Streblechenko; 24.04.2019
comment
Чем, вероятно, последнее, поскольку транснациональные корпорации обычно очень консервативны, когда дело доходит до использования скриптов... хорошо, спасибо! - person mikegross; 25.04.2019