Jump to content

HTM Datei mit vbs erstellen - Lotus Notes Signatur


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

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.

 

Danke

Link zu diesem Kommentar

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.

Link zu diesem Kommentar

Hi,

 

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

Link zu diesem Kommentar

so, hier der Code. Habe anscheinend Probleme mit dem Internet auf der Arbeit:

 

<!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>

Link zu diesem Kommentar

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.

 

Bilder solltest Du so einbetten:

 

<img src="X:\Signatur-Bilder\meine.jpg" alt="" width="300" height="200" border="0">

 

Notes ist bei diesem etwas unwöhnlichen Format so freundlich und bettet des Bild in die Mail ein.

 

Beispiel für eine Signatur:

 


<font face="sans-serif" size="2">
<br>

Mit freundlichen Grüßen<br><br>
Ich<br>
_______________________________________________<br>
Abteilung<br>
Firma<br>
Strasse, Ort, Telefon: 00000000, Fax: 00000000000<br>
E-Mail: <a href="mailto:ich@ich.com">mailto:ich@ich.com</a> web: http://www.meine.123<br><br>

usw.<br>
Sitz: <br>
Handelsregister (geheim)<br>

<BR>

<font face="sans-serif" color="#0080FF">Werbung</font><br>
<br>


Link zu diesem Kommentar

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?

Link zu diesem Kommentar

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

Link zu diesem Kommentar

Hab mir nu was in VB zusammen geschustert:

 

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


Link zu diesem Kommentar
   Public Function read_language()

       Dim FileReader As StreamReader
       Dim language_str, strText
       'Dim domain, container, signature_save, signature_name, signature_logo

       FileReader = New StreamReader("language.ini", System.Text.Encoding.Default)
       language_str = FileReader.ReadToEnd()
       FileReader.Close()

       language_str = Replace(language_str, "name=", "")
       language_str = Replace(language_str, "position=", "")
       language_str = Replace(language_str, "tel=", "")
       language_str = Replace(language_str, "fax=", "")
       language_str = Replace(language_str, "mobil=", "")
       language_str = Replace(language_str, "mail=", "")
       language_str = Replace(language_str, "create=", "")
       language_str = Replace(language_str, "quit=", "")

       strText = Split(language_str, vbCrLf)

       Return strText

   End Function

   Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

       Dim domain, container, signature_save

       domain = read_parameters(0)
       container = read_parameters(1)
       signature_save = read_parameters(2)

       TextBox_name.Text = GetUsername(SystemInformation.UserName, domain)
       TextBox_telefon.Text = GetTelefon(GetUsername(SystemInformation.UserName, domain), container)
       TextBox_mail.Text = GetMail(GetUsername(SystemInformation.UserName, domain), container)

       Label1.Text = read_language(0)
       Label2.Text = read_language(1)
       Label3.Text = read_language(2)
       Label4.Text = read_language(3)
       Label5.Text = read_language(4)
       Label6.Text = read_language(5)
       Button1.Text = read_language(6)
       Button2.Text = read_language(7)

   End Sub


   Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click


       Dim FileReader As StreamReader
       Dim FileWriter As StreamWriter
       Dim signature_str, path_str

       Dim name, position, tel, fax, mobil, mail, logo

       name = TextBox_name.Text
       position = TextBox_position.Text
       tel = TextBox_telefon.Text
       fax = TextBox_fax.Text
       mobil = TextBox_mobil.Text
       mail = TextBox_mail.Text
       logo = read_parameters(4)
       path_str = read_parameters(2)

       Dim signature_name As String
       signature_name = read_parameters(3)

       FileReader = New StreamReader(signature_name, System.Text.Encoding.Default)
       signature_str = FileReader.ReadToEnd()
       FileReader.Close()



       If Not position = Nothing Then
           signature_str = Replace(signature_str, "[VAR1]</font><BR>", "[VAR1]</font><BR>" & position & "<BR>")
       End If
       If Not mobil = Nothing Then
           signature_str = Replace(signature_str, read_language(3) & " : [VAR4]", read_language(3) & " : [VAR4]<BR>" & read_language(4) & ": " & mobil)
       End If

       signature_str = Replace(signature_str, "[VAR1]", name)
       signature_str = Replace(signature_str, "[VAR3]", tel)
       signature_str = Replace(signature_str, "[VAR4]", fax)
       signature_str = Replace(signature_str, "[VAR6]", mail)
       signature_str = Replace(signature_str, "[VAR7]", logo)

       If Not Directory.Exists(path_str) Then
           Directory.CreateDirectory(path_str)
       End If

       FileWriter = New StreamWriter(path_str & read_parameters(3), False)
       FileWriter.Write(signature_str)
       FileWriter.Close()

       If System.IO.File.Exists(read_parameters(4)) = True Then
           System.IO.File.Copy(read_parameters(4), path_str & read_parameters(4), True)
       End If

   End Sub

   Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
       Me.Close()
   End Sub
End Class

Link zu diesem Kommentar
  • 1 Jahr später...
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.

 

Hallo Ivo,

 

ich weiß der Beitrag ist schon sehr alt, aber das ist genau das was ich suche. Hast Du zufällig noch den Programm Code. Ich bin totaler Neuling was C++ angeht. Ich möchte das Rad aber auch nicht neu erfinden. Es wäre toll wenn Du mir weiterhelfen könntest. Habe es versucht in VB, aber über eine gefüllte Abfrage die eine INI Datei erzeugt bin ich leider nicht hinausgekommen.

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...