mac-duff 10 Geschrieben 10. Dezember 2009 Melden Teilen Geschrieben 10. Dezember 2009 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 Zitieren Link zu diesem Kommentar
Ivo 10 Geschrieben 12. Dezember 2009 Melden Teilen Geschrieben 12. Dezember 2009 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. Zitieren Link zu diesem Kommentar
mac-duff 10 Geschrieben 13. Dezember 2009 Autor Melden Teilen Geschrieben 13. Dezember 2009 Hi, Danke fuer die Antwort 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 Zitieren Link zu diesem Kommentar
mac-duff 10 Geschrieben 15. Dezember 2009 Autor Melden Teilen Geschrieben 15. Dezember 2009 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 Zitieren Link zu diesem Kommentar
mac-duff 10 Geschrieben 16. Dezember 2009 Autor Melden Teilen Geschrieben 16. Dezember 2009 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> Zitieren Link zu diesem Kommentar
zahni 554 Geschrieben 16. Dezember 2009 Melden Teilen Geschrieben 16. Dezember 2009 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> Zitieren Link zu diesem Kommentar
mac-duff 10 Geschrieben 18. Dezember 2009 Autor Melden Teilen Geschrieben 18. Dezember 2009 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? Zitieren Link zu diesem Kommentar
zahni 554 Geschrieben 18. Dezember 2009 Melden Teilen Geschrieben 18. Dezember 2009 Bei einer HTML-Datei musst Du im Zweifel überhaupt keine Zeilenvorschübe machen. Die kannst Du Dir sparen. Der "Zeilenvorschub ist der "<br>" tag. -zahni Zitieren Link zu diesem Kommentar
mac-duff 10 Geschrieben 20. Dezember 2009 Autor Melden Teilen Geschrieben 20. Dezember 2009 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 Zitieren Link zu diesem Kommentar
mac-duff 10 Geschrieben 23. Dezember 2009 Autor Melden Teilen Geschrieben 23. Dezember 2009 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 Zitieren Link zu diesem Kommentar
mac-duff 10 Geschrieben 23. Dezember 2009 Autor Melden Teilen Geschrieben 23. Dezember 2009 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 Zitieren Link zu diesem Kommentar
Robberduck 10 Geschrieben 29. März 2011 Melden Teilen Geschrieben 29. März 2011 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. Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.