2017-04-04 2 views
1

J'ai du mal à faire un simple surlignement sur mon texte en utilisant HTML dans Lotus Notes avec VBA.VBA: Sélectionnez le texte avec HTML dans Lotus Notes

J'avais utilisé les attributs suivants <span style=background:yellow;mso-highlight:yellow> et <style="background-color:yellow"> sans aucun succès et je suis sur le point d'abandonner. Est-il possible de faire cette chose simple sur Lotus Notes ou non?

Attached Voici mon code et une capture d'écran du résultat:

  1. code VBA

    Sous 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 
  1. Et une sortie de mon résultat: Output result

Aide s'il vous plaît! Je suis tellement curieux de savoir ce qui se passe là-bas.

+0

Quelle (s) version (s) de Lotus Notes traitez-vous? –

+0

Bonjour @Richard Schwartz, merci beaucoup pour votre attention. La version de Lotus Notes que j'utilise est BM Lotus Notes 8.5 (édition 8.5.2FP4 Révision 20111118.0756-FP4 (version 8.5.2FP4)). C'est une version d'entreprise donc nous ne pouvons pas le mettre à jour ... – polo31

+0

Une idée de ce qui pourrait causer cela? Comme vous pouvez le voir, le HTML aurait dû s'afficher correctement, je ne comprends pas pourquoi ce n'est pas le cas! – polo31

Répondre

1

Le test d'acidité consiste à savoir si votre code HTML fonctionne si vous l'envoyez à un utilisateur Notes. S'il fait ce que vous voulez, le client Notes peut le gérer et votre code n'envoie pas ce que vous pensez qu'il devrait être. Si ce n'est pas le cas, Notes ne peut pas gérer cette construction HTML et vous devez trouver un autre moyen de faire ce que vous voulez.

Testez votre code HTML en utilisant Telnet sur un serveur Domino sur le port 25, en l'adressant à votre utilisateur de test. Il y a lots de tutorials couvrant la technique de base. La plupart d'entre eux ne mentionnent pas que (a) il est beaucoup plus facile de taper le contenu de votre message dans un fichier et le coller dans votre fenêtre telnet que de le taper - suivi de deux lignes et d'une ligne avec un point (b) le contenu de vos messages comprend les en-têtes standard et les en-têtes mime, vous devez donc apprendre un peu plus sur leur fonctionnement si vous ne le savez pas déjà.

En plus de lire les documents RFC 2045 & 5322, la meilleure façon d'apprendre qbout les en-têtes est tout simplement en examinant la source des messages que vous avez reçus - par exemple, via « Afficher l'original » dans gmail, ou Vue - Afficher - Page Source dans Notes. Notes est assez pardonnant. Les en-têtes 'To:' et 'Subject:' et 'Date:' ne sont pas obligatoires. Le destinataire sera déterminé par la commande 'RCPT TO', qui précède le message. Vous aurez certainement besoin d'un en-tête de type de contenu spécifiant text/html; charset = iso-8859-1. N'oubliez pas de placer une ligne vide entre votre dernière ligne d'en-tête et le contenu du message. (Notez qu'à cet effet, vous n'avez pas besoin de vous soucier de configurer un message en plusieurs parties et de gérer les limites de section, donc si vous modélisez après la source d'un message que vous avez reçu, cherchez-en un avec un simple content-type: text/html;charset=something en-tête quelque part avant la première ligne vide.)