Как мне найти имя файла подписи пользователя Outlook по умолчанию? - PullRequest
0 голосов
/ 08 марта 2019

Извиняюсь, если это глупый вопрос школьника. В первый раз я опустил пальцы в воду, поэтому, пожалуйста, будьте осторожны.

Я написал надстройку Excel, которая используется для отправки электронных писем с помощью Outlook. Мне удалось придумать способ добавить подпись пользователя, которая прекрасно работает. Однако ложка дегтя состоит в том, что они меняют имена своих подписей.

Как я могу получить подпись пользователей по умолчанию из outlook?

Dim salutation As String, ourRef As String, amount As String, customerName As String, yourRef As String
Dim totalAmount As Double

' salutation
salutation = IIf(Time < 0.5, "Good morning", "Good afternoon")

' opening text
totalAmount = 0
For i = 0 To UBound(Table, 1)
    totalAmount = totalAmount + Table(i, 3)
Next i

body = "<!DOCTYPE html><html><body>"
body = body & "<div style=""font-family:'Segoe UI', Calibri, Arial, Helvetica; font-size: 14px; max-width: 768px;"">"
If bulk = True Then
    body = body & salutation & "<br /><br />We have sent you a bulk payment totaling " _
    & Format(totalAmount, "£##,##0.00") & ", to be credited to the following accounts: <br /><br />"
Else
    body = body & salutation & "<br /><br />We have sent you the following payments: <br /><br />"
End If

' table header
body = body & "<style type='text/css'>.tftable {font-size:12px;color:#333333;width:100%;" _
    & "border-width: 1px;border-color: #9dcc7a;border-collapse: collapse;}.tftable th {font-size:12px;" _
    & "background-color:#A99D36;border-width: 1px;padding: 8px;border-style: solid;border-color: " _
    & "#9dcc7a;text-align:left;}.tftable tr {background-color:#F0EDCF;}.tftable td {font-size:12px;" _
    & "border-width: 1px;padding: 8px;border-style: solid;border-color: #9dcc7a;}"
body = body & "</style><table class='tftable' border='1'><tr><th>Our ref</th><th>Amount</th>" _
    & "<th>Client name</th><th>Your ref</th></tr>"

' table body
For i = LBound(Table, 1) To UBound(Table, 1)

    ourRef = Table(i, 1)
    amount = Table(i, 3)
    customerName = Table(i, 2)
    yourRef = Table(i, 4)

    body = body & "<tr>"
    body = body & "<td>" & ourRef & "</td>"
    body = body & "<td>" & Format(amount, "£##,##0.00") & "</td>"
    body = body & "<td>" & customerName & "</td>"
    body = body & "<td>" & yourRef & "</td>"
    body = body & "</tr>"

Next i

body = body & "</tbody></table>"

' signature
enviro = CStr(Environ("appdata"))
Debug.Print enviro
Set objfso = CreateObject("Scripting.FileSystemObject")
strSigFilePath = enviro & "\Microsoft\Signatures\"
Debug.Print strSigFilePath
Set objSignatureFile = objfso.opentextfile(strSigFilePath & "Standard.htm")
strbuffer = objSignatureFile.ReadAll
body = body & "<br/><br/>" & strbuffer
objSignatureFile.Close

Функция завершения

Ответы [ 2 ]

1 голос
/ 10 марта 2019

Стиви, если я так смел, чтобы Ответить на это ...

  1. Файл подписи находится - C:\Users\username\AppData\Roaming\Microsoft\Signatures
  2. Их личные файлы изображений - C:\Users\username\AppData\Roaming\Microsoft\Signatures\[singatureName]_files Например: "Business_files"
  3. Изображения выглядят как image00 # .jpg индексирование
  4. Вы можете попробовать использовать HTMLBody VS просто body
  5. Вы можете использовать NameSpace.GetDefaultFolder, чтобы получить учетную запись электронной почты пользователя по умолчанию, таким образом получая подпись этих учетных записей

Возможно, когда вы используете NameSpace.GetDefaultFolder, тогда можете посмотреть имя подписи, а затем можете [name]_files, чтобы получить любые изображения, которые они могут иметь там. Обратите внимание, что если вы используете HTMLBody , так как это проблема моей компании, у пользователя будет блокировка настроек Programmatic Access Trust Center в Outlook. Это предлагает пользователю поле «Разрешить / запретить», в котором он может выбрать «Разрешить на срок до 10 минут ... просто к сведению.

»

Надеюсь, что это поможет. Дэнни, ExcelVBADude

0 голосов
/ 11 марта 2019

Из реестра можно прочитать двоичные значения «Новая подпись» и «Подпись с переадресацией»:

HKEY_CURRENT_USER \ Software \ Microsoft \ Office \ 15.0 \ Outlook \ Profiles [profileName] \ 9375CFF0413111d3B88A00104B2A6676 [accountNO]\

...