Normalmente in Active directory vengono salvate poche informazioni come nome e cognome, ma è possibile salvare molte più informazioni che possono essere utilizzate per creare automaticamente una firma completa senza che l’utente debba inserire alcuna informazione.
Grazie ad uno script vbs si potrà così creare un oggetto ADSystemInfo che raccoglie tutte le informazioni presenti in Active Directory e mostrarle nella firma. Nella figura qui di seguito potrete notare che è possibile estrarre qualsiasi attributo presente nell’utente da includere nella firma.
Nella seguente immagine troverete impostati i principali attributi utili nell’utilizzo della firma:

Ecco un esempio già pronto ed il relativo codice:

On Error Resume Next
Set objSysInfo = CreateObject("ADSystemInfo")
strUser = objSysInfo.UserName
Set objUser = GetObject("LDAP://" & strUser)
strName = objUser.FullName
strNome = objUser.Description
strUfficio = objUser.physicalDeliveryOfficeName
strReparto = objUser.Department
strTitolo = objUser.Title
strSocieta = objUser.company
strVia = objUser.streetAddress
strLocalita = objUser.l
strTelefonoFisso = objUser.telephoneNumber
strFax = objUser.FacsimileTelephoneNumber
strCellulare = objUser.Mobile
strProvincia = objUser.st
strEmail = objUser.mail
Set objWord = CreateObject("Word.Application")
Set objDoc = objWord.Documents.Add()
Set objSelection = objWord.Selection
Set objEmailOptions = objWord.EmailOptions
Set objSignatureObject = objEmailOptions.EmailSignature
Set objSignatureEntries = objSignatureObject.EmailSignatureEntries
Set objShape = objSelection.InLineShapes.AddPicture("\\NOMESERVER\CONDIVISIONE\logofirma.jpg")
objSelection.TypeParagraph()
'objSelection.TypeText chr(11)
objSelection.Font.Size = "8"
objSelection.Font.Name = "Verdana"
objSelection.Font.Bold = true
objSelection.TypeText strNome
if not strTitolo="" then
objSelection.Font.Size = "6"
objSelection.Font.Bold = false
objSelection.Font.Italic = true
objSelection.TypeText Chr(11) & strTitolo
end if
if not strUfficio="" then
objSelection.Font.Size = "6"
objSelection.Font.Bold = false
objSelection.Font.Italic = false
objSelection.TypeText Chr(11) & strUfficio
end if
if not strReparto="" then
objSelection.Font.Size = "6"
objSelection.Font.Bold = false
objSelection.Font.Italic = false
objSelection.TypeText Chr(11) & strReparto
end if
objSelection.TypeParagraph()
'objSelection.Style = "No Spacing"
objSelection.Font.Italic = true
objSelection.Font.Color = RGB(45,129,81)
objSelection.Font.Size = "8"
objSelection.Font.Name = "Verdana"
objSelection.Font.Bold = true
objSelection.TypeText "NOMEAZIENDA" & Chr(11)
objSelection.Font.Size = "6"
objSelection.TypeText "INDIRIZZO" & Chr(11)
objSelection.TypeText "CAP LOCALITA (PROV)" & Chr(11)
objSelection.TypeText "Telefono: NUMERODITELEFONO" & Chr(11)
objSelection.TypeText "Fax: NUMERODIFAX"
if not strCellulare="" then objSelection.TypeText Chr(11) & "Mobile: " & strCellulare
objSelection.TypeText Chr(11) & "E-mail: " & strEmail
objSelection.TypeParagraph()
Set objSelection = objDoc.Range()
objSignature = objSignatureEntries.Add("Firma con logo", objSelection)
objSignatureObject.NewMessageSignature = "Firma con logo"
objSignatureObject.ReplyMessageSignature = "Firma con logo"
objDoc.Saved = True
objWord.Quit


Ciao, grazie per l’articolo molto interessante.
Una domanda se cambio l’immagine della firma spesso tipo per fiere o eventi aziendali, le mail che ho già spedito riportano solamente l’immagine nuova e non l’immagine con la quale sono state spedite.
Ti è mai capitato?
Grazie
Ciao
Grazie per il tuo interessamento.
Quando cambi l’immagine della e-mail provvedi alla sostituzione dell’immagine indicata nel tag IMG o modifichi il tag per farlo puntare ad un nuovo file?
La prima ipotesi dovrebbe darti come risultato quello da te descritto, la seconda dovrebbe funzionare correttamente.
Scusa ma chr (11) è obbligatorio o si può non mettere? Io vorrei usare il Calibri e non il Verdana
Chr(11) inserisce solamente un interruzione di riga (l’equivalente di “Shift+Invio” di Word). Può tranquillamente usare anche il font Calibri.
Se invice non metti Chr(11) è un problema o va a capo come con l’invio quindi crea uno spazio più ampio?
Senza CHR(11) non va a capo. Per andare a capo bisognerà aggiungere il relativo carattere, ovvero CHR(13).
Questa la lista di caratteri che puoi usare con la relativa info e l’eventuale corrispondenza in VBA:
Chr(9) [Tabulazione] (vbTab)
Chr(10) [Avanzamento linea] (vbLf)
Chr(11) [Tabulazione verticale] (vbVerticalTab)
Chr(12) [Interruzione di pagina] (vbFormFeed)
Chr(13) [Ritorno a capo] (vbCr)
Chr(14) [Interruzione di colonna]