Проверка наличия свойства ViewBag для условного внедрения JavaScript

Я сделал ответ Community Wiki, потому что я не мог создать его без исследований PowerUser и помощи в более ранних комментариях.

Я взял PowerUser Sub X и добавил

Debug.Print "n------"    'with different values for n
Debug.Print ObjMail.HTMLBody

после каждого утверждения. Из этого я обнаружил, что подпись не находится в пределах .HTMLBody до ObjMail.Display, и только тогда, когда я ничего не добавил в тело.

Я вернулся к предыдущему решению PowerUser, которое использовало C:\Users\" & Environ("username") & "\AppData\Roaming\Microsoft\Signatures\Mysig.txt") , PowerUser был недоволен этим, потому что он хотел, чтобы его решение работало для других, у которых были бы разные подписи.

Моя подпись находится в одной папке, и я не могу найти какой-либо опции для изменения этой папки. У меня есть только одна подпись, поэтому, читая только HTM-файл в этой папке, я получил мою единственную / стандартную подпись.

Я создал таблицу HTML и вставил ее в подпись сразу же после & lt; body & gt; и установите тело html в результат. Я отправил электронное письмо самому себе, и результат был совершенно приемлемым, если вам понравилось мое форматирование, которое я включил, чтобы проверить, что могу.

Моя измененная подпрограмма:

Sub X()

  Dim OlApp As Outlook.Application
  Dim ObjMail As Outlook.MailItem

  Dim BodyHtml As String
  Dim DirSig As String
  Dim FileNameHTMSig As String
  Dim Pos1 As Long
  Dim Pos2 As Long
  Dim SigHtm As String

  DirSig = "C:\Users\" & Environ("username") & _
                               "\AppData\Roaming\Microsoft\Signatures"

  FileNameHTMSig = Dir$(DirSig & "\*.htm")

  ' Code to handle there being no htm signature or there being more than one

  SigHtm = GetBoiler(DirSig & "\" & FileNameHTMSig)
  Pos1 = InStr(1, LCase(SigHtm), "<body")

  ' Code to handle there being no body

  Pos2 = InStr(Pos1, LCase(SigHtm), ">")

  ' Code to handle there being no closing > for the body element

   BodyHtml = "<table border=0 width=""100%"" style=""Color: #0000FF""" & _
         " bgColor=#F0F0F0><tr><td align= ""center"">HTML table</td>" & _
         "</tr></table><br>"
  BodyHtml = Mid(SigHtm, 1, Pos2 + 1) & BodyHtml & Mid(SigHtm, Pos2 + 2)

  Set OlApp = Outlook.Application
  Set ObjMail = OlApp.CreateItem(olMailItem)
  ObjMail.BodyFormat = olFormatHTML
  ObjMail.Subject = "Subject goes here"
  ObjMail.Recipients.Add "my email address"
  ObjMail.Display

End Sub

Так как и PowerUser и я нашли наши подписи в C:\Users\" & Environ("username") & "\AppData\Roaming\Microsoft\Signatures, я предлагаю, чтобы это стандартное место для любой установки Outlook. Можно ли изменить это значение по умолчанию? Я не могу найти ничего, чтобы предложить это. Вышеприведенный код явно нуждается в некоторой разработке, но он добивается цели PowerUser по созданию тела электронной почты, содержащего HTML-таблицу над сигнатурой.

33
задан Saeed Neamati 27 December 2011 в 04:02
поделиться