HTM Datei mit vbs erstellen - Lotus Notes Signatur
Hallo,
fuer die Lotus Notes Signatur nutzen wir htm Dateien die ich gerne einfach per Script erstellen lassen wuerde. Das Problem sind nicht die Daten fuer die Signatur sondern die HTM Datei ist gute zwei Seiten lang und frage mich nun wie ich diese gescheit erstellen. Muss ich dann wirklich zwei Seiten mit chr(34) und vbrtl arbeiten?
Ich koennte auch die HTM Datei mit Variablen vorbereiten nur dann kann der User nicht so einfach das Script ausfuehren sondern muss dann immer drauf achten das die HTM Datei dabei liegt.
Wuerde auch gerne wissen wie ihr so was in einer Notes Landschaft realisiert.
Das hab ich beim Bund mal mit c++ gemacht. Der User musste nur seine Daten in ein Formular eingeben und OK klicken, schon war die Signatur fertig.
Man kann natuerlich die Infos auch aus einer CSV Datei oder Datenbank holen.
Soll der User seine Signatur selber gestalten koennen oder ist es eine vorgegebene Firmensignatur? Zweiteres ist bedeutend einfacher und laesst sich gut automatisieren.
also es ist schon Firmenstandard wobei die User entscheiden duerfen ob die ihre "Firmen-"Handynummer mit angeben wollen. Ich kann am Montag oder Dienstag mal die Signatur zeigen
ich konnte doch recht einfach den Code erheblich kuerzen. Hab nun nur noch zwei Probleme. Der erste Absatz zwischen Siege und der Telefonnummer wird "nur" in Lotus Notes 7.01 zu gross angezeigt.
Das zweite, ich weiss immer noch nicht wie ich dieses automatisiert erstellen kann ohne jede Zeile einzelnt in ein VBS ein zu plegen.
Fuer HTML Tips bin ich auch zu haben da ich kein HTML schreibe
Edit:
Bekomme leider immer einen Fehler in der Verbindung wenn ich versuche den Code anzuhaengen, versuche es nachher nochmal von Daheim
so, hier der Code. Habe anscheinend Probleme mit dem Internet auf der Arbeit:
Code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META content="text/html; charset=utf-8" http-equiv=Content-Type>
<META name=GENERATOR content="MSHTML 8.00.6001.18854"></HEAD>
<head>
<style type="text/css">
#line { line-height: 0.5; }
</style>
</head>
<BODY><BR><IMG src="test_archivos/image001.jpg"><BR>
<P class=MsoNormal><SPAN style="FONT-FAMILY: Arial; FONT-SIZE: 8pt" lang=FR
Roman? New <mso-bidi-font-family:?Times><FONT face=Arial>
<FONT color=#0000ff>Stephan</FONT> <BR>
Siége <BR>
<div id="line"> <BR> </div>
Tél :<SPAN style="PADDING-LEFT: 7px">+4565464</SPAN><BR>
Fax :<SPAN style="PADDING-LEFT: 7px">+346346346</SPAN>
<div id="line"> <br> </div>
<A href="mailto:User@.com"><SPAN
style="mso-bidi-font-size: 12.0pt">User@.com</SPAN></A><BR>
<A href="http://www.google.com/"><SPAN
style="mso-bidi-font-size: 12.0pt">http://www.google.com/</SPAN></A>
<div id="line"> <br> </div>
Ce message contient des informations confidentielles et protégées.<BR>
Au cas où il ne vous serait pas destiné, nous vous remercions de bien vouloir nous en aviser immédiatement et de le supprimer.
<div id="line"> <br> </div>
This e-mail may contain information that is privileged or confidential.<BR>
If you are not the intented recipient, please delete the e-mail.
</SPAN>
</P></FONT></BODY></HTML>
Mein Tip: Lass mal den ganzen CSS-Kram weg und schreibe einfaches HTML.
Das sieht irgendwie aus Office-Exportiert aus. Nicht gut.
Notes mag es nicht, wenn da <HEAD> <HTML> <BODY> Tags enthalten sind. Die darf es nur einmal geben und werden von Notes bei der Erzeugung der HTML-Mail selber hinzugefügt. Auch <META> Tags sollten da nciht enthalten sein.
ja, du hast Recht, hab das aus Office geklaut weil da die Schrift einfach schoener aussieht.
Habe jetzt aber den Code noch weiter gekuerzt und das CSS rausgenommen und die standard Schrift verwendet.
Trotzdem frage ich mich wie ich diese Seite per VB erstellen kann. Gibt es da vielleicht irgend einen Hardcore Befehl mit dem ich sagen kann das wird bis dato alles als Text verarbeitet?
Ich werde jetzt einfach mit einem html template arbeiten welches ich einlese und dem entsprechent bearbeite.
Versuche jetzt das ganze in VB zu realisieren so das ich noch eine nette GUI habe, aber is schon ein krasser Umstieg von VBS auf VB, blicke auch noch nicht ganz mit den Klassen dadurch. Wuerde dann naemlich auch noch ganz gerne Atribute aus dem AD auslesen
Imports System.IO
Imports System.Collections.Generic
Imports System.DirectoryServices
Public Class Signatur
Private Function GetUsername(ByVal UserName As String, ByVal DomainName As String) As String
Dim oDirectory As New DirectoryEntry("LDAP://" & DomainName)
Dim mySearcher As New DirectorySearcher(oDirectory)
Dim oResult As SearchResult
Dim sResult As String
mySearcher.SearchScope = SearchScope.Subtree
mySearcher.ReferralChasing = ReferralChasingOption.All
mySearcher.Filter = "(&(objectClass=user)(sAMAccountName=" & UserName & "))"
Try
oResult = mySearcher.FindOne
If Not oResult Is Nothing Then
sResult = oResult.GetDirectoryEntry.Properties("DisplayName").Value.ToString()
End If
Catch ex As Exception
Throw ex
End Try
oResult = Nothing
mySearcher.Dispose()
oDirectory.Dispose()
Return sResult
End Function
Private Function GetTelefon(ByVal strname As String, ByVal strContainer As String) As String
On Error Resume Next
Dim objItem
Dim objRootDSE = GetObject("LDAP://rootDSE")
If strContainer = "" Then
objItem = GetObject("LDAP://" & _
objRootDSE.Get("defaultNamingContext"))
Else
objItem = GetObject("LDAP://cn=" & strname & "," & strContainer & "," & _
objRootDSE.Get("defaultNamingContext"))
End If
Dim telefon_str As String = String.Empty
telefon_str = objItem.Get("telephoneNumber")
Return telefon_str
End Function
Private Function GetMail(ByVal strname As String, ByVal strContainer As String) As String
On Error Resume Next
Dim objItem
Dim objRootDSE = GetObject("LDAP://rootDSE")
If strContainer = "" Then
objItem = GetObject("LDAP://" & _
objRootDSE.Get("defaultNamingContext"))
Else
objItem = GetObject("LDAP://cn=" & strname & "," & strContainer & "," & _
objRootDSE.Get("defaultNamingContext"))
End If
Dim mail_str As String = String.Empty
mail_str = objItem.Get("mail")
Return mail_str
End Function
Public Function read_parameters()
Dim FileReader As StreamReader
Dim parameters_str, strText
'Dim domain, container, signature_save, signature_name, signature_logo
FileReader = New StreamReader("Parameters.ini")
parameters_str = FileReader.ReadToEnd()
FileReader.Close()
parameters_str = Replace(parameters_str, "domain=", "")
parameters_str = Replace(parameters_str, "container=", "")
parameters_str = Replace(parameters_str, "siganture_save=", "")
parameters_str = Replace(parameters_str, "signature_name=", "")
parameters_str = Replace(parameters_str, "signature_logo=", "")
strText = Split(parameters_str, vbCrLf)
Return strText
End Function