Я пишу сценарий VBA в Access, который создает и автоматически заполняет несколько десятков электронных писем. До сих пор все шло гладко, но я новичок в Outlook. После создания объекта mailitem, как мне добавить подпись по умолчанию к письму?
Это будет подпись по умолчанию, которая автоматически добавляется при создании нового письма.
В идеале я бы хотел просто использовать ObjMail.GetDefaultSignature
, но я не могу найти ничего подобного.
В настоящее время я использую функцию ниже (найденную в другом месте в интернете) и ссылаюсь на точный путь и имя файла htm. Но это будет использоваться несколькими людьми, и у них может быть другое имя для их стандартного файла подписи htm. Так что это работает, но не идеально:
Function GetBoiler(ByVal sFile As String) As String
'Dick Kusleika
Dim fso As Object
Dim ts As Object
Set fso = CreateObject("Scripting.FileSystemObject")
Set ts = fso.GetFile(sFile).OpenAsTextStream(1, -2)
GetBoiler = ts.readall
ts.Close
End Function
(Вызывается с помощью getboiler(SigString = "C:\Users\" & Environ("username") & "\AppData\Roaming\Microsoft\Signatures\Mysig.txt")
)
Благодаря JP (см. комментарии), я понял, что подпись по умолчанию отображается сначала, но она исчезает, когда я использую HTMLBody для добавления таблицы в письмо. Так что теперь я думаю, что мой вопрос заключается в следующем: Как мне отобразить подпись по умолчанию и при этом отобразить html-таблицу?
Sub X()
Dim OlApp As Outlook.Application
Dim ObjMail As Outlook.MailItem
Set OlApp = Outlook.Application
Set ObjMail = OlApp.CreateItem(olMailItem)
ObjMail.BodyFormat = olFormatHTML
ObjMail.Subject = "Subject goes here"
ObjMail.Recipients.Add "Email goes here"
ObjMail.HTMLBody = ObjMail.Body & "HTML Table goes here"
ObjMail.Display
End Sub