E-Mail Signatur Darstellungsprobleme

  • VBScript

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von INOPIAE.

    E-Mail Signatur Darstellungsprobleme

    Hallo miteinender,

    ich kenne mich ein wenig mit VBA aus und habe nun zwei unterschiedliche Versionen in .vbs um eine E-Mail Signatur mit Daten aus dem AD zu füllen.

    Bei der ersten Version ist leider viel zu viel Platzt zwischen den Tabellenzellen un dich hab keine Ahnung, wie ich die Höhe der Zellen, oder den Zeilenabstand reduzieren kann.

    Version 1:
    Spoiler anzeigen

    Visual Basic-Quellcode

    1. On Error Resume Next
    2. Set objWord = CreateObject("Word.Application")
    3. objWord.Visible = False
    4. Set objDoc = objWord.Documents.Add()
    5. Set objSelection = objWord.Selection
    6. Set objEmailOptions = objWord.EmailOptions
    7. Set objSignatureObject = objEmailOptions.EmailSignature
    8. Set objSignatureEntries = objSignatureObject.EmailSignatureEntries
    9. Set objRange = objDoc.Range()
    10. objDoc.Tables.Add objRange,3,3
    11. Set objTable = objDoc.Tables(1)
    12. objTable.Columns(1).Width = 200
    13. objTable.Columns(2).Width = 10
    14. objTable.Columns(3).Width = 200
    15. ' Logo über Pfad einfügen (kann auch über eine Variable definiert werden)
    16. objTable.Cell(1, 1).Range.InlineShapes.AddPicture("C:\Logo\Logo.jpg")
    17. ' Text "Hallo A1 in `Feld A1`- kann irgendein Text sein und Daten können z.B. aus dem AD gezogen werden)
    18. objTable.Cell(2, 1).Range.Font.Name = "Arial"
    19. objTable.Cell(2, 1).Range.Font.Size = 11
    20. objTable.Cell(2, 1).Range.Font.Bold = True
    21. objTable.Cell(2, 1).Range.Font.Color = RGB(31, 73, 125)
    22. objTable.Cell(2, 1).Range.Text = "Hallo A1"
    23. ' Text "Hallo A3 in `Feld C3`- kann irgendein Text sein und Daten können z.B. aus dem AD gezogen werden)
    24. objTable.Cell(2, 3).Range.Font.Name = "Arial"
    25. objTable.Cell(2, 3).Range.Font.Size = 11
    26. objTable.Cell(2, 3).Range.Font.Bold = False
    27. objTable.Cell(2, 3).Range.Font.Color = RGB(31, 73, 125)
    28. objTable.Cell(2, 3).Range.Text = "Hallo C3"
    29. ' Text "Hallo A3 in `Feld A3`- kann irgendein Text sein und Daten können z.B. aus dem AD gezogen werden)
    30. objTable.Cell(3, 1).Range.Font.Name = "Arial"
    31. objTable.Cell(3, 1).Range.Font.Size = 11
    32. objTable.Cell(3, 1).Range.Font.Bold = True
    33. objTable.Cell(3, 1).Range.Font.Color = RGB(31, 73, 125)
    34. objTable.Cell(3, 1).Range.Text = "Hallo A3"
    35. ' Text "Hallo A3 in `Feld C3`- kann irgendein Text sein und Daten können z.B. aus dem AD gezogen werden + eine zweite Zeile mit zu viel Zeilenabstand)
    36. objTable.Cell(3, 3).Range.Font.Name = "Arial"
    37. objTable.Cell(3, 3).Range.Font.Size = 11
    38. objTable.Cell(3, 3).Range.Font.Bold = False
    39. objTable.Cell(3, 3).Range.Font.Color = RGB(31, 73, 125)
    40. objTable.Cell(3, 3).Range.Text = "Hallo C3" & chr(13) & "neue Zeile und der Zeilenabstand könnte als temporäre Lösung geringer sein"
    41. Set objSelection = objDoc.Range()
    42. objSignatureEntries.Add "MySignature", objSelection
    43. objSignatureObject.NewMessageSignature = "MySignature"
    44. objSignatureObject.ReplyMessageSignature = "MySignature"
    45. objDoc.Saved = True
    46. objWord.Quit




    Bei der zweiten Version sind die Zeilenabstände etc. perfekt, aber das Logo (.jpg) Datei wird nur als Verknüpfung eingefügt -> sprich der Empfänger der E-Mail bekommt das Logo nicht mit in der Mail:

    Version 2:
    Spoiler anzeigen

    Visual Basic-Quellcode

    1. Set oWSH = CreateObject("WScript.Shell")
    2. fsDateiPfad = oWSH.ExpandEnvironmentStrings("%APPDATA%\")
    3. fsDateiPfad = fsDateiPfad & "Microsoft"
    4. folder = fsDateiPfad
    5. Set fso = CreateObject("Scripting.FileSystemObject")
    6. If fso.FolderExists(folder) Then 'Office installed
    7. 'msgbox("office installed")
    8. Set objSysInfo = CreateObject("ADSystemInfo")
    9. strUser = objSysInfo.UserName
    10. Set objUser = GetObject("LDAP://" & strUser)
    11. strMail = objUser.mail
    12. if strMail <> "" then 'Mailadr set
    13. 'Check Signature Dir exist or make it
    14. folder = fsDateiPfad & "\Signatures\"
    15. If fso.FolderExists(folder) Then 'Signatures Dir exist
    16. fsDateiPfad = ""
    17. 'msgbox("SigDir exist")
    18. else
    19. fso.CreateFolder(folder)
    20. 'msgbox("SigDir not exist - [" & folder & "]")
    21. end if
    22. 'Get lokal APPDATA
    23. Set oWSH = CreateObject("WScript.Shell")
    24. fsDateiPfad = oWSH.ExpandEnvironmentStrings("%APPDATA%\")
    25. fsDateiPfad = fsDateiPfad & "Microsoft\Signatures\"
    26. 'Get AccDetails
    27. strLogo="V:\Logo\Logo.jpg"
    28. signatur_conet()
    29. end if
    30. end if 'Office installed
    31. function signatur_conet()
    32. Set fsDatei = CreateObject("Scripting.FileSystemObject")
    33. fsDateiName = fsDateiPfad & "Signatur-" & AccName & ".htm"
    34. fsDatei.CreateTextFile fsDateiName
    35. Set fsDatei = fsDatei.getfile(fsDateiName)
    36. Set fsinhalt = fsDatei.OpenAsTextStream(2, -2)
    37. fsinhalt.write "<html>" & vbLf
    38. fsinhalt.write "<head>" & vbLf
    39. fsinhalt.write "</head>" & vbLf
    40. fsinhalt.write "<body>" & vbLf
    41. fsinhalt.write "<img src=" & strLogo & " height='50' />"
    42. fsinhalt.write "<br /><br />" & vbLf
    43. fsinhalt.write "<table border='0' style='FONT-FAMILY:""Arial"",""sans-serif"";font-size:10pt'; cellspacing=0; cellpadding=0; width=500px>" & vbLf
    44. fsinhalt.write " <tr>" & vbLf
    45. fsinhalt.write " <td colspan='3' style='font-size:10pt;font-weight:bold;color:#1F497D'>Hallo A1</td><td>&nbsp</td><td style='font-size:10pt;color:#1F497D'>Hallo C1</td>" & vbLf
    46. fsinhalt.write " </tr>" & vbLf
    47. fsinhalt.write " </tr>" & vbLf
    48. fsinhalt.write " <tr>" & vbLf
    49. fsinhalt.write " <td colspan='3'>&nbsp</td>" & vbLf
    50. fsinhalt.write " </tr>" & vbLf
    51. fsinhalt.write " <tr>" & vbLf
    52. fsinhalt.write " <td style='font-size:10pt;color:#1F497D'>Hallo A3</td><td>&nbsp</td><td style='font-size:10pt;color:#1F497D'>Hallo C3</td>" & vbLf
    53. fsinhalt.write " </tr>" & vbLf
    54. fsinhalt.write "</table>" & vbLf
    55. fsinhalt.write "</body>" & vbLf
    56. fsinhalt.write "</html>"
    57. fsinhalt.Close
    58. 'Generate TXT File
    59. fsDateiName = fsDateiPfad & "Signatur-" & AccName & ".txt"
    60. Set fsDatei = CreateObject("Scripting.FileSystemObject")
    61. fsDatei.CreateTextFile fsDateiName
    62. Set fsDatei = fsDatei.getfile(fsDateiName)
    63. Set fsinhalt = fsDatei.OpenAsTextStream(2, -2)
    64. fsinhalt.write "Mit freundlichen Grüßen / Best regards" & vbLf & vbLf
    65. fsinhalt.write strPreName & " " & strName & " " & strSurname & vbLf
    66. if strTitle <> "" then
    67. fsinhalt.write strTitle & " / " & strDepartment & vbLf & vbLf
    68. else
    69. fsinhalt.write strDepartment & vbLf & vbLf
    70. end if
    71. end function





    Kann mir jemand weiter helfen um eine der beiden Versionen so hinzubekommen, dass entweder in der .doc Variante die Zellenumrandung kleiner ist, oder der Zeilenabstand reduziert wird?

    Oder in der .html Variante das Logo mit integriert wird und nicht als Verknüpfung zu der Datei auf dem Server mitgesendet wird?

    Viele Grüße
    Dressler01

    CodeTags gesetzt und aufgrund des Codeumfangs Spoiler hinzugefügt ~VaporiZed

    Dieser Beitrag wurde bereits 9 mal editiert, zuletzt von „Dressler01“ ()

    Hast Du Dir mal den Ordner AppData\Roaming\Microsoft\Signatures\ angeschaut. Da gibt es einen Unterordner, der die Dateien für die Signatur enthält. Du musst für die HTML Version dann den Verweis der Bilddatei auch auf diesen Pfad anpassen.

    Warum nutzt Du in der RTF-Version eine Tabelle statt einfache Absätze.

    Generiere Dir doch einfach in Outlook einen Signatur mit Bild und schaue Dir dann die entsprechenden Dateien im Signatures Ordner an.
    NB. Es ist doch schön, wenn man lesbare Namen vergibt. Siehe auch [VB.NET] Beispiele für guten und schlechten Code (Stil).