Déploiement Signature Outlook 2010

Déploiement Signature Outlook 2010 - Poste de travail - Systèmes & Réseaux Pro

Marsh Posté le 13-03-2013 à 15:53:26    

Bonjour,  
Nous aurons très prochainement une nouvelle charte graphique, et dans cette charte, il sera question des mails.
Tous nos mails devront intégrer un même modèle de signature(nom+tél+mail+logo+adresse la boite) et utiliser la même police.
Donc 1ère question concerne le déploiement de la signature sur tous les profils, comme faire ? comment utiliser des infos de l'AD ?
Et la 2ème question concerne la police, peut-on forcer l'utilisation d'une police pour les mails (sans passer sur tous les postes) ?
Pour info, nous avons Outlook 2007 en client messagerie, et Exchange 2010.
Merci d'avance pour votre aide.
Cdt

Reply

Marsh Posté le 13-03-2013 à 15:53:26   

Reply

Marsh Posté le 13-03-2013 à 16:08:52    

Si Exchange 2010 te fais pas chier avec des signatures sur les clients, crée une transport rule avec ta signature et zou, ça  ira chercher les champs dans l'AD.

Reply

Marsh Posté le 13-03-2013 à 16:19:32    

OK, merci bien pour la réponse.
J'avais lu dans des forums que l'inconvénient de cette solution était que la signature se mettait tout en bas du mail. Ce qui fait que pour un mail où il y a x réponse dedans, la signature est affiché x fois tout en bas du mail.
Es-tu au courant de ça ? est ce que c'est vrai ?

Reply

Marsh Posté le 13-03-2013 à 16:23:18    

Hmmm il y a des chances ta raison, faudrait tester.

Reply

Marsh Posté le 13-03-2013 à 16:27:56    

oui je vais tester ça,  
merci en tout cas

Reply

Marsh Posté le 13-03-2013 à 18:00:35    

Hello
Chez moi c'est un couple de scripts PHP/shell (avec samba) home made qui permet de déployer les signatures dans l'intranet (ça sous-entend que tu as un intranet avec les infos nécessaires dedans...)


---------------
NewsletTux - outil de mailing list en PHP MySQL
Reply

Marsh Posté le 14-03-2013 à 05:09:57    

IDEM ici,
 
Une tâche planifiée lance un powershell qui récupère dans AD les infos voulues pour les mettre en csv.
Il génère les .txt et .rtf pour chaque user.
Il lance un programme en .net qui génère une image png à partir d'un modèle, pour chaque user avec ses propres infos.
 
Après c'est un script GPO qui copie sur chaque poste client à l'ouverture de session les fichiers générés (txt, rtf et png) , et un template html
Il tape dans la BDR pour placer la signature sur le compte de l'user sous Outlook et la paramétrer pour les nouveaux messages.
 
Après je peux aider sur le powershell ou le script GPO mais pas sur le .net, c'est pas moi :D
Mais la signature devra être sous forme d'image ou non ?

Reply

Marsh Posté le 14-03-2013 à 08:18:06    

Plop,
chez nous c'est un script VB qui génère 2 fichiers HTML et fixe 2 lignes dans le registre:
1) un HTML avec une signature classique -> uniquement pour les new mail
2) un autre HTML bien plus light -> pour les réponse et transferts
 
le VBS est fixé dans une GPO et hop, feu!

Reply

Marsh Posté le 14-03-2013 à 08:58:48    

ShonGail a écrit :

IDEM ici,
 
Une tâche planifiée lance un powershell qui récupère dans AD les infos voulues pour les mettre en csv.
Il génère les .txt et .rtf pour chaque user.
Il lance un programme en .net qui génère une image png à partir d'un modèle, pour chaque user avec ses propres infos.
 
Après c'est un script GPO qui copie sur chaque poste client à l'ouverture de session les fichiers générés (txt, rtf et png) , et un template html
Il tape dans la BDR pour placer la signature sur le compte de l'user sous Outlook et la paramétrer pour les nouveaux messages.
 
Après je peux aider sur le powershell ou le script GPO mais pas sur le .net, c'est pas moi :D
Mais la signature devra être sous forme d'image ou non ?


 
Cte truc de fou o.O
Mais c'est nickel, une image, perso je préfère avec des petits logos, ça fait plus pro.

Reply

Marsh Posté le 14-03-2013 à 09:10:53    

Une image comme signature ? Cet overkill :/

Reply

Marsh Posté le 14-03-2013 à 09:10:53   

Reply

Marsh Posté le 14-03-2013 à 09:48:39    

C'est le client qui veut ça.
Et c'est pas mal. Dans le HTML, y'a juste le ALT et un href pour que l'image pointe vers le site de la boite.
Au début c'était du HTML avec éléments graphiques. Mais ça passait mal sur certaines messageries et le destinataire se retrouvait avec une signature dénaturée.
Après si on est un extrémiste, le txt pur, rien d'autre, c'est sûr ...


Message édité par ShonGail le 14-03-2013 à 09:49:19
Reply

Marsh Posté le 14-03-2013 à 10:27:09    

Merci pour vos réponses.
On m'a donné le modèle de la signature en word .dot. ça doit reprendre des infos de l'AD + le logo. J'ai transformé le .dot en .htm pour essayer de l'intégrer dans la règle de transport.
Je me familiarise déjà avec les transport hub parce que c'est la 1ère fois que j'utilise ça . Mais le logo pour l'instant ne ressort pas. je continue les essais.

Reply

Marsh Posté le 15-03-2013 à 09:13:29    

@Rodrigo35 ta solution m'intéresse, pourrais-tu me donner plus d'infos stp ?
Car l'inconvénient de la transport rule est que l'utilisateur ne voit pas sa signature (et ne peut donc pas la modifier), or y a des infos qu'il faut qu'il y ait dans la signature mais qu'on na pas dans l'AD.
Donc je pencherais plus pour une signature mise sur les postes client (déployé ou non via une GPO)
Merci d'avance.

Reply

Marsh Posté le 15-03-2013 à 09:29:53    

voila le bout de code que nous utilisons.
bon alors il est certainement améliorable hein, mais chez nous il fait le job ^^
 
je ne suis pas à l'origine de tout le code, je me suis inspiré de scripts existants et j'ai fait ma ptite adaptation ^^
 
le script:
- fait une recherche dans l'AD
- génère les 2 signatures
- indique dans le registre quelle signature utiliser quand
 
 
 
 
 
 
 
'Option Explicit
On Error Resume Next
 
' 1. déclaration des variables
'-----------------------------
' Objets requête LDAP, réseau et utilisateur
Dim qQuery, objSysInfo, objuser
' Objet Outlook
Dim Outlook
 
' Informations sur l'utilisateur
Dim FullName, EMail, Title, PhoneNumber, MobileNumber, FaxNumber, OfficeLocation, Department
Dim web_address, StreetAddress, Town, State, Company
Dim ZipCode, PostOfficeBox
 
' Locatisations de répertoire
Dim FolderLocation, UserDataPath
 
' Chaîne réutilisable
Dim SignatureEnvoi, SignatureReponse, Localisation, LocalisationReponse
 
' Version d'outlook
dim outlookver
 
' Divers
dim CheckTime
 
 
 
 
 
 
' Initialisation de variables - les changements doivent être faits ici sur cette variable
'--------------------------------------
Localisation = "Signatures"
SignatureEnvoi = "Signature-envoi"
SignatureReponse = "Signature-reponse"
'--------------------------------------
 
' En premier, obtenir la version d'outlook
'--------------------------------------------------
set outlook = createobject("outlook.application" )
outlookver = Left(outlook.version, InStr(outlook.version, "." )-1)
set Outlook = nothing
 
' Petite boucle basée sur le temps pour attendre la fermeture d'outlook
'----------------------------------------------------------------------------
 
CheckTime = timer
while (timer - checktime) < 10
        ' on ne fait rien, on attend juste que Outlook se termine...
Wend
 
 
 
 
 
 
 
' On récupère les informations utilisateurs de l'AD par l'intermédiaire d'une requête LDAP
'---------------------------------------------------------------------------------------------------
Set objSysInfo = CreateObject("ADSystemInfo" )
objSysInfo.RefreshSchemaCache
qQuery = "LDAP://" & objSysInfo.Username
Set objuser = GetObject(qQuery)
FullName = objuser.displayname
EMail = objuser.mail
Company = objuser.Company
Title = objuser.title
PhoneNumber = objuser.TelephoneNumber
FaxNumber = objuser.FaxNumber
OfficeLocation = objuser.physicalDeliveryOfficeName
StreetAddress = objuser.streetaddress
PostofficeBox = objuser.postofficebox
Department = objUser.Department
ZipCode = objuser.postalcode
Town = objuser.l
MobileNumber = objuser.TelephoneMobile
web_address = objUser.wWWHomePage
 
 
 
 
' CREATION DE LA SIGNATURE D'ENVOI
'---------------------------------------------------------------------
Dim SignEnvoi, RegistreEnvoi
Set SignEnvoi = CreateObject("WScript.Shell" )
 
' Modification du chemin contenant la signature dans la base de registre basée sur la version d'outlook
RegistreEnvoi = "HKEY_CURRENT_USER\Software\Microsoft\Office\"&OutlookVer&".0\Common\General\Signatures"
SignEnvoi.RegWrite RegistreEnvoi , Localisation
 
' Création du chemin local contenant les signatures
'--------------------------------------------------
UserDataPath = SignEnvoi.ExpandEnvironmentStrings("%appdata%" )
FolderLocation = UserDataPath &"\Microsoft\"&Localisation&"\"
 
' On précise ici la signature Nouveau message
'-----------------------------------------------------------
SignEnvoi.RegWrite "HKEY_CURRENT_USER\Software\Microsoft\Office\"&outlookVer&".0\Common\MailSettings\NewSignature" , SignatureEnvoi
SignEnvoi.RegWrite "HKEY_CURRENT_USER\Software\Microsoft\Office\"&OutlookVer&".0\Outlook\Options\Mail\EnableLogging" , "0", "REG_DWORD"
 
 
 
 
 
' on vérifie si le chemin local des signatures existe. sinon on le crée.
'-----------------------------------------------------------------------
Dim DossierEnvoi
Set DossierEnvoi = CreateObject("Scripting.FileSystemObject" )
If (DossierEnvoi.FolderExists(FolderLocation)) Then
Else
Call DossierEnvoi.CreateFolder(FolderLocation)
End if
 
 
 
' On crée le fichier de signature
'-------------------------------------------
Dim SIGNATURE1
Dim FicEnvoi,afile1, SignFoll1, Folcoll1, SubFoll1
Dim aQuote
aQuote = chr(34)
 
' Adaptation du modèle
'-------------------------------------------
Set SIGNATURE1 = CreateObject("Scripting.FileSystemObject" )
 
' on efface toutes les signatures présente dans le chemin local des signatures
'------------------------------------------------------------------------------------
SIGNATURE1.DeleteFile(Folderlocation & "*.*" )
 
' suppresion de tout répertoire dans ce dossier
'------------------------------------------------------
set SignFoll1 = SIGNATURE1.GetFolder(FolderLocation)
Set Folcoll1 = SignFoll1.SubFolders
For Each subfol in Folcoll1
        subFol.Delete true
Next
 
Set FicEnvoi = SIGNATURE1.CreateTextFile(FolderLocation&"\"&SignatureEnvoi&".htm",True)
FicEnvoi.Close
Set FicEnvoi = SIGNATURE1.OpenTextFile(FolderLocation&"\"&SignatureEnvoi&".htm", 2)
 
' Signature en code HTML. Vous pouvez modifier à  loisir ce code pour l'adapter selon vos besoins.
'--------------------------------------
dest_sign = "<!DOCTYPE HTML PUBLIC " & aQuote & "-//W3C//DTD HTML 4.0 Transitional//EN" & aQuote & ">" & vbCrLf
dest_sign = dest_sign & "<html>"
dest_sign = dest_sign & "<head>"
dest_sign = dest_sign & "<style>"
dest_sign = dest_sign & "body {"
dest_sign = dest_sign & "color : #365D91;"
dest_sign = dest_sign & "font-family : Calibri;"
dest_sign = dest_sign & "font-size : 11.0pt;"
dest_sign = dest_sign & "}"
dest_sign = dest_sign & "</style>"
dest_sign = dest_sign & "</head>"
dest_sign = dest_sign & "<body>"
dest_sign = dest_sign & "<a href="&aQuote&"SOMEWHERE"&aQuote&"><img border=0 width=595 height=144 src="&aQuote&"EMPLACEMENT IMAGE HAUT"&aQuote&"></a>"
dest_sign = dest_sign & "<style>"
dest_sign = dest_sign & "<!--"
dest_sign = dest_sign & ".texte {"
dest_sign = dest_sign & "        font-family: Calibri;"
dest_sign = dest_sign & "        font-size: 11.0pt;"
dest_sign = dest_sign & "        color: #000000;"
dest_sign = dest_sign & "}"
dest_sign = dest_sign & ".username {"
dest_sign = dest_sign & "        font-family: Calibri;"
dest_sign = dest_sign & "        font-size: 11.0pt;"
dest_sign = dest_sign & "        color: #000000;"
dest_sign = dest_sign & "}"
dest_sign = dest_sign & ".title {"
dest_sign = dest_sign & "        font-family: Calibri;"
dest_sign = dest_sign & "        font-size: 11.0pt;"
dest_sign = dest_sign & "        font-style: Italic;"
dest_sign = dest_sign & "        color: #000000;"
dest_sign = dest_sign & "}"
dest_sign = dest_sign & ".site {"
dest_sign = dest_sign & "        font-family: Calibri;"
dest_sign = dest_sign & "        font-size: 11.0pt;"
dest_sign = dest_sign & "        color: #000000;"
dest_sign = dest_sign & "}"
dest_sign = dest_sign & ".telephone {"
dest_sign = dest_sign & "        font-family: Calibri;"
dest_sign = dest_sign & "        font-size: 11.0pt;"
dest_sign = dest_sign & "        color: #000000;"
dest_sign = dest_sign & "}"
dest_sign = dest_sign & ".mobile {"
dest_sign = dest_sign & "        font-family: Calibri;"
dest_sign = dest_sign & "        font-size: 11.0pt;"
dest_sign = dest_sign & "        color: #000000;"
dest_sign = dest_sign & "}"
dest_sign = dest_sign & "-->"
dest_sign = dest_sign & "</style>"
dest_sign = dest_sign & "<BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR>"
dest_sign = dest_sign & "<div class="&aQuote&"username"&aQuote&">"&Fullname&"</div>"
dest_sign = dest_sign & "<div class="&aQuote&"title"&aQuote&">"&Title&"</div>"
dest_sign = dest_sign & "<div class="&aQuote&"site"&aQuote&">"&OfficeLocation&"</div>"
dest_sign = dest_sign & "<div class="&aQuote&"telephone"&aQuote&">"&PhoneNumber&"</div>"
dest_sign = dest_sign & "<div class="&aQuote&"mobile"&aQuote&">"&MobileNumber&"</div>"
dest_sign = dest_sign & "<div class="&aQuote&"web"&aQuote&"><a href="&aQuote&"http://"&web_address&aQuote&">"&web_address&"</a></div>"
dest_sign = dest_sign & "<div class="&aQuote&"texte"&aQuote&">------------------------</div>"
dest_sign = dest_sign & "<a href="&aQuote&"SOMEWHERE"&aQuote&"><img border=0 width=595 height=144 src="&aQuote&"EMPLACEMENT IMAGE BAS"&aQuote&"></a>"
dest_sign = dest_sign & "</body>"
dest_sign = dest_sign & "</html>"
 
' Fin de la personnalisation
'--------------------------------------
 
FicEnvoi.write dest_sign
FicEnvoi.Close  
 
 
 
 
 
 
' On crée ici les signatures
' A partir d'ici, toute la méthode n'est pas supportée par Microsoft.
'---------------------------------------------------------------------
Dim SignReponse, RegistreReponse
Set SignReponse = CreateObject("WScript.Shell" )
 
' Modification du chemin contenant la signature dans la base de registre basée sur la version d'outlook
RegistreReponse = "HKEY_CURRENT_USER\Software\Microsoft\Office\"&OutlookVer&".0\Common\General\Signatures"
SignReponse.RegWrite RegistreReponse , Localisation
 
' Création du chemin local contenant les signatures
'--------------------------------------------------
UserDataPath = SignReponse.ExpandEnvironmentStrings("%appdata%" )
FolderLocation = UserDataPath &"\Microsoft\"&Localisation&"\"
 
' On précise ici la signature reponse
'-----------------------------------------------------------
'SignEnvoi.RegWrite "HKEY_CURRENT_USER\Software\Microsoft\Office\"&outlookVer&".0\Common\MailSettings\NewSignature" , SignatureEnvoi
SignReponse.RegWrite "HKEY_CURRENT_USER\Software\Microsoft\Office\"&OutlookVer&".0\Common\MailSettings\ReplySignature" , SignatureReponse
SignReponse.RegWrite "HKEY_CURRENT_USER\Software\Microsoft\Office\"&OutlookVer&".0\Outlook\Options\Mail\EnableLogging" , "0", "REG_DWORD"
 
 
 
 
 
' on vérifie si le chemin local des signatures existe. sinon on le crée.
'-----------------------------------------------------------------------
Dim DossierReponse
Set DossierReponse = CreateObject("Scripting.FileSystemObject" )
If (DossierReponse.FolderExists(FolderLocation)) Then
Else
Call DossierReponse.CreateFolder(FolderLocation)
End if
 
 
 
' On crée le fichier de signature
'-------------------------------------------
Dim SIGNATURE2
Dim FicReponse,afile2, SignFoll2, Folcoll2, SubFoll2
Dim aQuote2
aQuote2 = chr(34)
 
' Adaptation du modèle
'-------------------------------------------
Set SIGNATURE2 = CreateObject("Scripting.FileSystemObject" )
 
' on efface toutes les signatures présente dans le chemin local des signatures
'------------------------------------------------------------------------------------
'SIGNATURE2.DeleteFile(Folderlocation & "*.*" )
 
' suppresion de tout répertoire dans ce dossier
'------------------------------------------------------
set SignFoll2 = SIGNATURE2.GetFolder(FolderLocation)
Set Folcoll2 = SignFoll2.SubFolders
For Each subfol in Folcoll2
        subFol.Delete true
Next
 
Set FicReponse = SIGNATURE2.CreateTextFile(FolderLocation&"\"&SignatureReponse&".htm",True)
FicReponse.Close
Set FicReponse = SIGNATURE2.OpenTextFile(FolderLocation&"\"&SignatureReponse&".htm", 2)
 
' Signature en code HTML. Vous pouvez modifier à  loisir ce code pour l'adapter selon vos besoins.
'--------------------------------------
dest_sign = "<!DOCTYPE HTML PUBLIC " & aQuote2 & "-//W3C//DTD HTML 4.0 Transitional//EN" & aQuote2 & ">" & vbCrLf
dest_sign = dest_sign & "<html>"
dest_sign = dest_sign & "<head>"
dest_sign = dest_sign & "<style>"
dest_sign = dest_sign & "body {"
dest_sign = dest_sign & "color : #365D91;"
dest_sign = dest_sign & "font-family : Calibri;"
dest_sign = dest_sign & "font-size : 11.0pt;"
dest_sign = dest_sign & "}"
dest_sign = dest_sign & "</style>"
dest_sign = dest_sign & "</head>"
dest_sign = dest_sign & "<body>"
dest_sign = dest_sign & "<style>"
dest_sign = dest_sign & "<!--"
dest_sign = dest_sign & ".texte {"
dest_sign = dest_sign & "        font-family: Calibri;"
dest_sign = dest_sign & "        font-size: 11.0pt;"
dest_sign = dest_sign & "        color: #000000;"
dest_sign = dest_sign & "}"
dest_sign = dest_sign & ".username {"
dest_sign = dest_sign & "        font-family: Calibri;"
dest_sign = dest_sign & "        font-size: 11.0pt;"
dest_sign = dest_sign & "        color: #000000;"
dest_sign = dest_sign & "}"
dest_sign = dest_sign & ".title {"
dest_sign = dest_sign & "        font-family: Calibri;"
dest_sign = dest_sign & "        font-size: 11.0pt;"
dest_sign = dest_sign & "        font-style: Italic;"
dest_sign = dest_sign & "        color: #000000;"
dest_sign = dest_sign & "}"
dest_sign = dest_sign & ".site {"
dest_sign = dest_sign & "        font-family: Calibri;"
dest_sign = dest_sign & "        font-size: 11.0pt;"
dest_sign = dest_sign & "        color: #000000;"
dest_sign = dest_sign & "}"
dest_sign = dest_sign & ".telephone {"
dest_sign = dest_sign & "        font-family: Calibri;"
dest_sign = dest_sign & "        font-size: 11.0pt;"
dest_sign = dest_sign & "        color: #000000;"
dest_sign = dest_sign & "}"
dest_sign = dest_sign & ".mobile {"
dest_sign = dest_sign & "        font-family: Calibri;"
dest_sign = dest_sign & "        font-size: 11.0pt;"
dest_sign = dest_sign & "        color: #000000;"
dest_sign = dest_sign & "}"
dest_sign = dest_sign & "-->"
dest_sign = dest_sign & "</style>"
dest_sign = dest_sign & "<div class="&aQuote2&"username"&aQuote2&">"&Fullname&"</div>"
dest_sign = dest_sign & "<div class="&aQuote2&"title"&aQuote2&">"&Title&"</div>"
dest_sign = dest_sign & "<div class="&aQuote2&"site"&aQuote2&">"&OfficeLocation&"</div>"
dest_sign = dest_sign & "<div class="&aQuote2&"telephone"&aQuote2&">"&PhoneNumber&"</div>"
dest_sign = dest_sign & "<div class="&aQuote2&"mobile"&aQuote2&">"&MobileNumber&"</div>"
dest_sign = dest_sign & "<div class="&aQuote2&"texte"&aQuote2&">------------------------</div>"
dest_sign = dest_sign & "</body>"
dest_sign = dest_sign & "</html>"
 
' Fin de la personnalisation
'--------------------------------------
 
FicReponse.write dest_sign
FicReponse.Close  
 
 
 
 
'---------------------------------------------------------------------
' Cette section prend le profil courant d'Outlook et y place le nom de la signature par défaut
'---------------------------------------------------------------------
 
' Use this version to set all accounts in the default mail profile to use a previously created signature
Call SetDefaultSignature(SignatureEnvoi,"" )
Call SetReplySignature(SignatureReponse,"" )
 
 
Sub SetDefaultSignature(strSignName, strProfile)
        Const HKEY_CURRENT_USER = &H80000001
        strComputer = "."
 
        If Not IsOutlookRunning Then
                Set objreg = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\default:StdRegProv" )
                strKeyPath = "Software\Microsoft\Windows NT\" & "CurrentVersion\Windows " & "Messaging Subsystem\Profiles\"
                ' get default profile name if none specified
                If strProfile = "" Then
                        objreg.GetStringValue HKEY_CURRENT_USER, strKeyPath, "DefaultProfile", strProfile
                End If
                ' build array from signature name
                myArray = StringToByteArray(strSignName, True)
                strKeyPath = strKeyPath & strProfile & "\9375CFF0413111d3B88A00104B2A6676"
 
                objreg.EnumKey HKEY_CURRENT_USER, strKeyPath, arrProfileKeys
                For Each subkey In arrProfileKeys
                        strsubkeypath = strKeyPath & "\" & subkey
                        objreg.SetBinaryValue HKEY_CURRENT_USER, strsubkeypath, "New Signature", myArray
                Next
        Else
                strMsg = "Please shut down Outlook before " & "running this script."
                MsgBox strMsg, vbExclamation, "SetDefaultSignature"
        End If
End Sub  
 
Sub SetReplySignature(strSignName, strProfile)
        Const HKEY_CURRENT_USER = &H80000001
        strComputer = "."
 
        If Not IsOutlookRunning Then
                Set objreg = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\default:StdRegProv" )
                strKeyPath = "Software\Microsoft\Windows NT\" & "CurrentVersion\Windows " & "Messaging Subsystem\Profiles\"
                ' get default profile name if none specified
                If strProfile = "" Then
                        objreg.GetStringValue HKEY_CURRENT_USER, strKeyPath, "DefaultProfile", strProfile
                End If
                ' build array from signature name
                myArray = StringToByteArray(strSignName, True)
                strKeyPath = strKeyPath & strProfile & "\9375CFF0413111d3B88A00104B2A6676"
 
                objreg.EnumKey HKEY_CURRENT_USER, strKeyPath, arrProfileKeys
                For Each subkey In arrProfileKeys
                        strsubkeypath = strKeyPath & "\" & subkey
                        objreg.SetBinaryValue HKEY_CURRENT_USER, strsubkeypath, "Reply-Forward Signature", myArray
                Next
        Else
                strMsg = "Please shut down Outlook before " & "running this script."
                MsgBox strMsg, vbExclamation, "SetReplySignature"
        End If
End Sub  
 
 
Function IsOutlookRunning()
        strComputer = "."
        strQuery = "Select * from Win32_Process " & "Where Name = 'Outlook.exe'"
        Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2" )
        Set colProcesses = objWMIService.ExecQuery(strQuery)
        For Each objProcess In colProcesses
                If UCase(objProcess.Name) = "OUTLOOK.EXE" Then
                        IsOutlookRunning = True
                Else
                        IsOutlookRunning = False
                End If
        Next
End Function
 
Public Function StringToByteArray (Data, NeedNullTerminator)
        Dim strAll
        strAll = StringToHex4(Data)
        If NeedNullTerminator Then
                strAll = strAll & "0000"
        End If
        intLen = Len(strAll) \ 2
        ReDim arr(intLen - 1)
        For i = 1 To Len(strAll) \ 2
                arr(i - 1) = CByte ("&H" & Mid(strAll, (2 * i) - 1, 2))
        Next
        StringToByteArray = arr
End Function
 
Public Function StringToHex4(Data)
        ' Input: normal text
        ' Output: four-character string for each character,
        ' e.g. "3204" for lower-case Russian B,
        ' "6500" for ASCII e
        ' Output: correct characters
        ' needs to reverse order of bytes from 0432
        Dim strAll
        For i = 1 To Len(Data)
                ' get the four-character hex for each character
                strChar = Mid(Data, i, 1)
                strTemp = Right("00" & Hex(AscW(strChar)), 4)
                strAll = strAll & Right(strTemp, 2) & Left(strTemp, 2)
        Next
        StringToHex4 = strAll
End Function

Reply

Marsh Posté le 15-03-2013 à 09:31:33    

le tout dans un joli "signature.vbs" et hop

Reply

Marsh Posté le 15-03-2013 à 09:33:19    

Ok super, merci bcp @rodrigo35, je teste ça au plus vite.

Reply

Marsh Posté le 15-03-2013 à 10:30:36    

oula la, c'est pas du joli, joli :)
 
'Option Explicit
On Error Resume Next


Message édité par akizan le 15-03-2013 à 10:30:44
Reply

Marsh Posté le 15-03-2013 à 10:58:47    

j'avoue....
je ne m'en suis même pas rendu compte ^^
(bon, vous aurez donc bien compris que je ne suis pas développeur ^^)

Reply

Marsh Posté le 15-03-2013 à 15:44:17    

Je viens de tester, ça a l'air de fonctionner, reste qq règlages par contre, je n'ai plus accès aux signatures dans mon Outlook, j'y accède en allant dans les options mais c'est verrouillé.
je ne vois pas dans le code, qu'est-ce qui a pu le faire ? une idée ?

Reply

Marsh Posté le 15-03-2013 à 19:04:34    

essaye le clic droit sur la signature fixée par le script.... je ne suis pas au bureau là, mais au pire lundi je regarderai !!

Reply

Marsh Posté le 18-03-2013 à 10:10:04    

le clic droit dans le mail sur la signature me permet de voir quelle est la signature active, je peux seulement changer de signature mais pas les modifier, les personnaliser.

Reply

Marsh Posté le 18-03-2013 à 10:18:02    

apres verif, chez nous c'est pareil, ça vient du fait que la signature à appliquer est fixée par le registre....
à la limite tu peux tester en virant les HKEY_CURRENT_USER\Software\Microsoft\Office\"&outlookVer&".0\Common\MailSettings
 
ainsi, les signatures sont créées mais ne sont pas forcées dans outlook....

Reply

Marsh Posté le 20-03-2013 à 09:47:27    

Oui ça fonctionne manuellement sur mon poste si je renomme la clé MailSettings ou si je la supprime du registre, mais je n'arrive pas à le faire en code.  
J'ai essayé en rajoutant ça dans le code mais sans succès :
 
Dim WshShell
Set WshShell = WScript.CreateObject("WScript.Shell" )
WshShell.RegDelete ("HKEY_CURRENT_USER\Software\Microsoft\Office\"&outlookVer&".0\Common\MailSettings" )
 
une idée ?

Reply

Marsh Posté le 20-03-2013 à 10:18:44    

mets en commentaire les lignes:
' On précise ici la signature Nouveau message  
'-----------------------------------------------------------  
SignEnvoi.RegWrite "HKEY_CURRENT_USER\Software\Microsoft\Office\"&outlookVer&".0\Common\MailSettings\NewSignature" , SignatureEnvoi  
SignEnvoi.RegWrite "HKEY_CURRENT_USER\Software\Microsoft\Office\"&OutlookVer&".0\Outlook\Options\Mail\EnableLogging" , "0", "REG_DWORD"  
 
et  
 
' On précise ici la signature reponse  
'-----------------------------------------------------------  
'SignEnvoi.RegWrite "HKEY_CURRENT_USER\Software\Microsoft\Office\"&outlookVer&".0\Common\MailSettings\NewSignature" , SignatureEnvoi  
SignReponse.RegWrite "HKEY_CURRENT_USER\Software\Microsoft\Office\"&OutlookVer&".0\Common\MailSettings\ReplySignature" , SignatureReponse  
SignReponse.RegWrite "HKEY_CURRENT_USER\Software\Microsoft\Office\"&OutlookVer&".0\Outlook\Options\Mail\EnableLogging" , "0", "REG_DWORD"  
 
 
de cette façon, je pense que les signatures se créent, mais ne s'appliquent pas automatiquement, donc tu dois garder la main pour sélectionner celle que tu veux

Reply

Marsh Posté le 20-03-2013 à 10:35:38    

Ah Yess, super, ça marche.  
Merci bcp pour ton aide rodrigo35.

Reply

Marsh Posté le 20-03-2013 à 10:37:37    

de rien ^^

Reply

Marsh Posté le 20-03-2013 à 10:40:53    

Et au sujet de la police par défaut du mail, est-ce que je peux la forcer aussi dans un script ? est ce que c'est possible ?
Parce que là la police fonctionne bien dans la signature mais pas dans le corps du mail.

Reply

Marsh Posté le 20-03-2013 à 11:48:22    

houlla...
là tu dépasses mon niveau de compétence ^^
 
je pense que tout doit plus ou moins pouvoir etre défini par script, mais reste a trouver la bonne ligne de registre

Reply

Marsh Posté le 21-03-2013 à 10:39:52    

OK pas grave, j'ai trouvé ça sur le net pour ceux que ça intéresse pour la police par défaut, un tour ici http://thommck.wordpress.com/2009/ [...] eferences/.
merci encore

Reply

Marsh Posté le 22-03-2013 à 10:19:41    

Encore besoin de votre aide svp ;
voilà ton script rodrigo35 marche super bien, le seul truc où je cherche comment faire et où je demande de l'aide c'est , une fois la nouvelle signature créée, j'aimerais qu'elle ne soit pas effacé et remplacé.
Car là je fais des essais, j'ai la nouvelle signature, je la personnalise et au redémarrage de ma session, ça m'efface mes modifs.
J'aimerais juste rajouter dans le code, si cette nouvelle signature est créé, on sort du script,  
merci d'avance

Reply

Marsh Posté le 22-03-2013 à 10:23:24    

je verrai bien au début du script un:
 
If (dossier_des_signatures.FolderExists(emplacement)) Then  
 
exit ou end ou quelque chose du style
 
End if

Reply

Marsh Posté le 22-03-2013 à 10:54:54    

oui c'est ce que je pensais mais je trouvais pas la bonne formule pour sortir, exit marchait pas, du coup j'ai trouvé ça sur le net et mis ça comme ligne
 
If (DossierEnvoi.FolderExists(FolderLocation)) Then
wscript.quit
 
et ça fonctionne !
Donc encore une fois merci bien rodrigo35 pour ton aide !!

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed