Отправка электронной почты с помощью Lotus Notes - (другая база данных) - Excel VBA - PullRequest
0 голосов
/ 11 мая 2018

У меня крошечная проблема с VBA, которую я подготовил для отправки писем из базы данных в виде лотосных заметок (кроме основной базы данных)

Когда я отправляю то же письмо из основной базы данных в виде лотосных заметок,(база данных имени пользователя) У меня нет проблем, все работает без сбоев.Тем не менее, при той же кодировке я просто изменяю сервер и имя базы данных, он отправляет электронные письма, но с экраном сообщений в примечаниях лотоса: «Вы хотите сохранить свои изменения?»Мне нужно выбрать да или нет, тогда он отправляет электронные письма.Как я уже сказал, единственная разница - это база данных и сервер в кодировке.

Вот сообщение в Lotus Notes:

enter image description here

Вот код VBA.

Sub SendWithLotus()
Dim NSession As Object
Dim NDatabase As Object
Dim NUIWorkSpace As Object
Dim NDoc As Object
Dim NUIdoc As Object
Set NSession = CreateObject("Notes.NotesSession")
Set NUIWorkSpace = CreateObject("Notes.NotesUIWorkspace")
Set NDatabase = NSession.GETDATABASE("XXXXX/XXX/XXXServer", "mail\YYYYY")

'=> это основное изменение, если я хочу отправить из основной почтовой базы данных, я ничего не вводю в скобках, и все работает нормально.

If Not NDatabase.IsOpen Then
    NDatabase.OPENMAIL
End If

'Create a new document

Set NDoc = NDatabase.CREATEDOCUMENT

With NDoc
    .SendTo = Range("O8").Value
    .CopyTo = ""
    .Subject = Range("O7").Value

    'Email body text, including marker text which will be replaced by the Excel cells

    .body = vbNewLine & vbNewLine & _
        "**Cell Contents**" & vbNewLine & vbNewLine & _
        ""

    .Save True, False
End With

'Edit the just-created document to copy and paste the Excel cells into it

Set NUIdoc = NUIWorkSpace.EDITDOCUMENT(True, NDoc)

With NUIdoc

    'Find the marker text in the Body item

    .GOTOFIELD ("Body")
    .FINDSTRING "**Cell Contents**"
    '.DESELECTALL            'Uncomment to leave the marker text in place (cells are inserted immediately before)

    'Replace it with the Excel cells

    Sheets("Sheet1").Range("A1:L58").CopyPicture xlScreen, xlBitmap
    .Paste
    Application.CutCopyMode = False
    .Send
    .Close
    NDoc.SAVEMESSAGEONSEND = True
End With

Set NSession = Nothing
    NDatabase = Nothing
    NDoc = Nothing
End Sub

Причиной могут быть настройки другой базы данных или мне может понадобиться код, чтобы закрыть это окно сообщения в Lotus Notes, но я не знаю, как.

1 Ответ

0 голосов
/ 11 мая 2018

Трудно сказать, но одна база данных может иметь форму по умолчанию, отличную от другой, и ваш код может использовать ее.Я бы предложил добавить в документ Notes поле с именем SaveOptions и установить значение 0. Попробуйте:

NUIDoc.Document.ReplaceItemValue("SaveOptions",0)

перед отправкой.

...