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]