【问题标题】:VBA : Highlight text with HTML in Lotus NotesVBA:在 Lotus Notes 中使用 HTML 突出显示文本
【发布时间】:2017-04-04 12:55:55
【问题描述】:

我很难在带有 VBA 的 Lotus Notes 中使用 HTML 对我的文本进行简单的突出显示。

我使用了以下属性<span style=background:yellow;mso-highlight:yellow><style="background-color:yellow"> 没有任何成功,我几乎要放弃了。是否可以在 Lotus Notes 上做这个简单的事情?

这里附上我的代码和结果截图:

  1. VBA 代码

    Sub SendLocalExtensionEmail()

    Dim nMailBody As String
    Dim nMailSubject As String
    Dim nMailRecipient As Variant
    Dim nMail As Object
    Dim nSession As Object
    Dim nDatabase As Object
    Dim nMime As Object
    Dim nMailStream As Object
    Dim nChild As Object
    Dim nSomeMailBodyText As String
    Dim amountOfRecipients As Integer
    

   msg_var = "<font face=Arial> <p style=font-size:10pt>" & _
          "Dear Sir/ Madam, <br />" & _
          "<br />" & _
          "MANY LINES OF TEXT" & _
          "<font color=red><span style=background:yellow;mso-highlight:yellow>" & _
          "Please revert within 5 working days" & _
          "</font></span>" & _
          "Best Regards, <br />" & _
          "</font>"
    nSomeMailBodyText = msg_var
    nMailRecipient = ""
    nMailSubject = "A great email"

    Set nSession = CreateObject("Notes.NotesSession")
    Set nDatabase = nSession.GetDatabase("", "")
    Call nDatabase.OPENMAIL
    Set nMail = nDatabase.CreateDocument

    nMail.SendTo = "hello@world.com"
    nMail.Subject = "hello@world.com"

    nSession.ConvertMIME = False
    Set nMime = nMail.CreateMIMEEntity
    Set nMailStream = nSession.CreateStream

    'vBody containung the text in Html
    Call nMailStream.WriteText(nSomeMailBodyText)
    Call nMailStream.WriteText("<br>")

    '-------------------------------------------------------------------

    Set nChild = nMime.CreateChildEntity
    Call nChild.SetContentFromText(nMailStream, "text/html;charset=iso-8859-1", ENC_NONE)
    Call nMailStream.Close
    nSession.ConvertMIME = True
    Call nMail.Save(True, True)
    'Make mail editable by user
    CreateObject("Notes.NotesUIWorkspace").EDITDOCUMENT True, nMail
    'Could send it here
End Sub
  1. 我的结果的输出:

请帮忙!我很想知道那里发生了什么。

【问题讨论】:

  • 您处理的是什么版本的 Lotus Notes?
  • 您好@Richard Schwartz,非常感谢您的关注。我正在使用的 Lotus Notes 版本是 BM Lotus Notes 8.5(版本 8.5.2FP4 修订版 20111118.0756-FP4(发行版 8.5.2FP4))。这是一个企业版,所以我们不能更新它......
  • 知道是什么原因造成的吗?如您所见,HTML 应该已正确显示,但我不明白为什么不正确!
  • 好吧,mso-hightlight 肯定不起作用,因为“mso”属性只在 Microsoft 产品中起作用。在 Save 调用之前,您是否尝试过不使用 ConvertMIME=True 赋值?
  • 哦,好吧,我不知道。好吧,它也不适用于在 Save 调用之前的 ConvertMIME=True 分配......仍然是相同的输出。

标签: html vba lotus-notes


【解决方案1】:

严格的测试是,如果您将 HTML 发送给 Notes 用户,它是否可以正常工作。如果它执行您想要的操作,那么 Notes 客户端可以处理它,并且您的代码不会发送您认为应该发送的内容。如果没有,则 Notes 无法处理该 HTML 结构,您需要找到另一种方法来做您想做的事情。

使用 Telnet 到 Domino 服务器的端口 25 测试您的 HTML,并将其发送给您的测试用户。有lotstutorials 涵盖了基本技术。他们中的大多数人没有提到(a)将消息的内容输入文件并将其粘贴到您的 telnet 窗口中比输入要容易得多 - 然后是几个换行符和一个带点字符的行和另一个换行符,并且 (b) 您的消息内容包括标准标题和 mime 标题,因此如果您还不知道它们是如何工作的,那么您必须了解一下它们的工作原理。

除了阅读相关的 RFC 20455322,了解 qbout 标头的最佳方法是简单地检查您收到的消息的来源 - 例如,通过 gmail 中的“显示原始”或查看 -显示 - Notes 中的页面源。笔记非常宽容。 'To:' 和 'Subject:' 和 'Date:' 标题不是必需的。收件人将由“RCPT TO”命令确定,该命令在您输入消息之前出现。您肯定需要指定 text/html;charset=iso-8859-1 的内容类型标头。不要忘记在最后一个标题行和实际消息内容之间放置一个空行。 (请注意,为此目的,您无需担心设置多部分消息和处理部分边界,因此如果您要根据收到的消息源进行建模,请寻找一个简单的content-type: text/html;charset=something 第一个空行之前的标题。)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-10-03
    • 1970-01-01
    • 2018-12-18
    • 2016-11-22
    • 1970-01-01
    • 1970-01-01
    • 2012-02-28
    相关资源
    最近更新 更多