2017-04-04 116 views
1

通过在Lotus Notes和VBA中使用HTML,我很难在文本上做一个简单的突出显示。VBA:在Lotus Notes中使用HTML突出显示文本

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

以下附件是我的代码和结果的截图:

  1. VBA代码

    子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 = "[email protected]" 
    nMail.Subject = "[email protected]" 

    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 
  • 我的结果的输出: Output result
  • 请帮助!我很好奇,想知道那里发生了什么。

    +0

    您正在处理哪些Lotus Notes版本? –

    +0

    你好@Richard Schwartz,非常感谢您的关注。我使用的Lotus Notes版本是BM Lotus Notes 8.5(版本8.5.2FP4Révision20111118.0756-FP4(版本8.5.2FP4))。这是一个企业版本,所以我们不能更新它... – polo31

    +0

    任何想法可能会导致这种情况?正如你可以看到HTML应该正确显示,我不明白为什么它不是! – polo31

    回答

    1

    酸性测试是您的HTML是否工作,如果您将其发送给Notes用户。如果它做到了你想要的,那么Notes客户端可以处理它,并且你的代码不会发送你认为应该的东西。如果没有,那么Notes无法处理该HTML构造,并且您需要找到另一种方法来执行您想要的操作。

    通过使用Telnet连接到端口25上的Domino服务器来测试您的HTML,并将其发送给测试用户。覆盖基本技术的tutorialslots。他们大多没有提到(a)将消息内容输入到文件并将其粘贴到远程登录窗口中比键入它更容易 - 之后是一些换行符和一个带点字符的行,另一个换行符,和(b)你的消息内容包括标准头文件和MIME头文件,所以你必须了解一些关于这些工作如果你不知道的话。

    除了阅读相关的RFC 2045 & 5322,学习qbout头最好的方法就是通过检查是否已收到消息的来源 - 例如,通过“显示原始”在Gmail中,或查看 - 显示 - 页来源于Notes。笔记相当宽容。 'To:'和'Subject:'和'Date:'标题不是必需的。收件人将由输入消息前的“RCPT TO”命令决定。你一定需要一个指定text/html; charset = iso-8859-1的内容类型头文件。不要忘记在最后的标题行和实际的消息内容之间留出空行。 (请注意,为此目的,您不必担心设置多部分消息并处理区段边界,因此如果您在接收到消息源后进行建模,则只需使用简单的content-type: text/html;charset=something在第一个空白行之前的某处)