Отправка отформатировала электронную почту обогащенного текста Lotus Notes от Excel VBA

Эта ошибка связана с https://forge.typo3.org/issues/87884 и работает над afaik

.

9
задан Lunatik 26 March 2009 в 16:53
поделиться

3 ответа

Короткий ответ - Да. Длинный ответ является болезненным. Нет никаких больших классов, выставленных для управления объектами обогащенного текста в Примечаниях. Однако некоторые, что можно исследовать, являются NotesRichTextStyle, NotesRichTextParagraphStyle и NotesRichTextTable для именования некоторых. Эти классы помогают Вам определить некоторые элементы обогащенного текста и добавить их программно к Вашему полю обогащенного текста.

Другой подход, так как Вы посылаете электронное письмо, должен использовать классы NotesMIMEEntity и создать электронную почту с помощью HTML (путь легче путь). Вот некоторый пример кода:

Set s = New NotesSession
Dim docMail As NotesDocument
Dim body As NotesMIMEEntity
Dim stream As NotesStream

Set db = s.CurrentDatabase
s.ConvertMIME = False ' Do not convert MIME to rich text

'Create email to be sent
Set docMail = db.CreateDocument

With docMail
        .SendTo = SEND TO ADDRESS
        .From = FROM ADDRESS
        .Principal = FROM ADDRESS
        .ReplyTo = REPLY TO ADDRESS
        .Subject = SUBJECT
        .Form = "Memo"
End With

  Set stream = s.CreateStream
Set body = docMail.CreateMIMEEntity
Call stream.WriteText ("YOUR HTML CODE GOES HERE")

'ENC_IDENTITY_8BIT used because of technote found on notes.net
'http://www-10.lotus.com/ldd/nd6forum.nsf/55c38d716d632d9b8525689b005ba1c0/aeedaf28e47546ad85256f6a000a4b48?OpenDocument
Call body.SetContentFromText (stream, "text/html;charset=iso-8859-1",ENC_IDENTITY_8BIT) 

Call docMail.Send(False)
Set docMail = Nothing
Set body = Nothing
Set stream = Nothing

s.ConvertMIME = True ' Restore conversion   

По существу необходимо будет выключить установку ConvertMIME в NotesSession. Затем создайте новый документ, установите почтовые свойства и т.д. Та часть уже находится в Вашем коде VBA. Затем, создайте MIMEEntity и поток для содержания текста HTML. Наконец назовите метод SetContentFromText на своем объекте MIMEEntity. Затем пошлите свое электронное письмо. Обратите внимание, что последняя возможность состоит в том, чтобы снова включить функцию ConvertMIME NotesSession.

Я не уверен, будет ли это все работать через COM, но он действительно работает хорошо в агентах LotusScript в Примечаниях.

Я надеюсь, что это помогает!

10
ответ дан 4 December 2019 в 21:12
поделиться

Мне нравится такой, какой он есть. Однако мне пришлось изменить dbString = "mail \" & Application.UserName & ".nsf" на dbString = "mail \ "& Application.CurrentUser &" .nsf "

Первый комментарий: мне жаль, что мне не нужно было открывать Lotus Notes во время отправки.

Второй комментарий: я хотел бы изменить адрес электронной почты (например, если я отправляю отчет 50 людям, я хочу, чтобы он был с общего адреса, а не с моего рабочего адреса)

0
ответ дан 4 December 2019 в 21:12
поделиться

Чтобы изменить, от кого он, создайте общий идентификатор Notes (например, Auto Send / YourCompany) и сохраните агента с этим идентификатором.

0
ответ дан 4 December 2019 в 21:12
поделиться