Visualizzazione post con etichetta MS Outlook. Mostra tutti i post
Visualizzazione post con etichetta MS Outlook. Mostra tutti i post

martedì 31 agosto 2021

MS Outlook: Aggiungere un link per essere contattati tramite WhatsApp all'interno della firma

All'interno della firma di Outlook (o in qualsiasi altro posto) può essere comodo inserire un link che consenta al destinatario dell'email di chiamarci o scriverci tramite WhatsApp. Il testo del link sarà simile a
https://wa.me/<numero_telefono>

ovviamente sostituendo <numero_telefono> con il proprio numero di telefono.

Creare una nuova firma in Outlook
  • In Outlook selezionare il menu File -> Opzioni -> Posta e cliccare sul pulsante Firme;
  • Cliccare sul pulsante Nuova per procedere alla creazione di una nuova firma;
    Outlook, Nuova Firma
    FIG 1 - Outlook, Nuova Firma

  • Digitare il nome da assegnare alla nuova firma nell'apposita casella e cliccare su OK;
    Outlook, Nome firma
    FIG 2 - Outlook, Nome firma

  • Digitare il testo all'interno della firma. Per abbellire il nostro link possiamo inserire un'icona (come quelle di WhatsApp scaricabili da QUI) cliccando sull'apposito pulsante e una scritta, come ad es. Contattami su WhatsApp.
    Outlook, Inserisci immagine
    FIG 3 - Outlook, Inserisci immagine 

  • Selezionare l'icona e il testo adiacente e cliccare sul pulsante per l'inserimento del link. Digitare il testo del link come sopra riportato (opportunamente modificato con il nostro numero di telefono) e cliccare su OK.

    Outlook, Inserisci link
    FIG 4 - Outlook, Inserisci link 

    Outlook, link a WhatsApp
    FIG 5 - Outlook, link a WhatsApp

  • A questo punto non resta che salvare la nuova firma cliccando su Salva e specificare se intendiamo che venga visualizzata automaticamente per i Nuovi messaggi e Risposte/inoltri.
    Outlook, Salva firma
    FIG 6 - Outlook, Salva firma 



mercoledì 11 agosto 2021

MS Outlook: Aggiungere un link per essere contattati tramite Teams all'interno della firma

Per aggiungere un link all'interno della firma di Outlook (o in qualsiasi altro posto) che consente al destinatario di contattarci tramite Teams è molto semplice. Il testo del link sarà simile a
https://teams.microsoft.com/l/chat/0/0?users=<indirizzo_email>

ovviamente sostituendo <indirizzo_email> con il proprio indirizzo email.

Creare una nuova firma in Outlook
  • In Outlook selezionare il menu File -> Opzioni -> Posta e cliccare sul pulsante Firme;
  • Cliccare sul pulsante Nuova per procedere alla creazione di una nuova firma;
    Outlook, Nuova Firma
    FIG 1 - Outlook, Nuova Firma

  • Digitare il nome da assegnare alla nuova firma nell'apposita casella e cliccare su OK;
    Outlook, Nome firma
    FIG 2 - Outlook, Nome firma

  • Digitare il testo all'interno della firma. Per abbellire il nostro link possiamo inserire un'icona (come quelle di Teams scaricabili da QUI) cliccando sull'apposito pulsante e una scritta, come ad es. Contattami su Teams.
    Outlook, Inserisci immagine
    FIG 3 - Outlook, Inserisci immagine

  • Selezionare l'icona e il testo adiacente e cliccare sul pulsante per l'inserimento del link. Digitare il testo del link come sopra riportato (opportunamente modificato con il nostro indirizzo email) e cliccare su OK.
    Outlook, Inserisci link
    FIG 4 - Outlook, Inserisci link

    Outlook, link a Teams
    FIG 5 - Outlook, link a Teams

  • A questo punto non resta che salvare la nuova firma cliccando su Salva e specificare se intendiamo che venga visualizzata automaticamente per i Nuovi messaggi e Risposte/inoltri.

    Outlook, Salva firma
    FIG 6 - Outlook, Salva firma




lunedì 2 agosto 2021

MS Outlook: Modificare il percorso della Rubrica Offline (OAB)

La Rubrica Offline di Outlook, spesso chiamata anche OAB (Offline Address Book), Offline Global Address List o GAL, si trova di default nel seguente percorso: 
C:\Users\%username%\AppData\Local\Microsoft\Outlook\Offline Address Books\

La cartella Offline Address Books sopra indicata può contenere una o più sottocartelle a seconda di quanti account Exchange sono configurati sul sistema. I nomi delle sottocartelle sono basati su GUID e ciò rende difficile individuare a quale account Exchange appartengono.

Per individuare la cartella che contiene la Rubrica offline del proprio account Outlook basta procedere come indicato di seguito:
  • Avviare Outlook e aprire la Rubrica cliccando sull'apposita icona presente sulla barra multifunzione o tramite la combinazione di tasti CTRL+MAIUSC+B;
  • Dall'elenco a discesa della Rubrica, selezionare il proprio Elenco indirizzi globale offline (Offline Global Address list);
  • Una volta selezionato, cliccare con il tasto destro del mouse sull'elenco a discesa e selezionare Proprietà;
    Rubrica
    FIG 1 - Rubrica

  • Nella casella Server corrente viene mostrato l'intero percorso della cartella contenente i file della nostra Rubrica Offline (inclusa la cartella GUID).
    Cartella contenente i file OAB
    FIG 2 - Cartella contenente i file OAB

La posizione dei file OAB può essere modificata tramite il registro di sistema:
  • Avviare l'Editor del registro di sistema (WIN+R e digitare regedit seguito da invio); 
  • Creare, se non presente la seguente chiave di registro
    HKEY_CURRENT_USER\SOFTWARE\Microsoft\office\16.0\Outlook\Cached Mode
  • Posizionandosi sulla chiave sopra indicata, creare un nuovo valore STRINGA e rinominarlo in SpecifyOfflineAddressBookPath
  • All'interno del valore stringa appena creato digitare il nuovo percorso della Rubrica offline (bisogna specificare una cartella esistente) e cliccare su OK per confermare la modifica.
    SpecifyOfflineAddressBookPath
    FIG 3 - SpecifyOfflineAddressBookPath

  • Al termine della modifica va ricreato il profilo outlook




sabato 31 luglio 2021

MS Outlook: Disattivare o limitare l'elenco degli elementi recenti nel menu Allega file

In Outlook 2016, Outlook 2019 e Microsoft 365, per impostazioni predefinita e a seconda della risoluzione/dimensione dello schermo, vengono mostrati fino a 12 file nell'elenco degli elementi recenti del pulsante Allega file. Non è possibile filtrare direttamente tale elenco ma è possibile disattivarlo o limitare il numero di elementi visualizzati agendo tramite il registro di sistema.
Outlook, Elenco Allega file
FIG 1 - Outlook, Elenco Allega file


É possibile controllare quanti elementi recenti vengono mostrati nel menu Allega file tramite il valore di registro MaxAttachmentMenuItems:
  • Avviare l'Editor del registro di sistema (WIN+R e digitare regedit seguito da invio); 
  • Posizionarsi su
    HKEY_CURRENT_USER\Software\Microsoft\Office\16.0\Outlook\Options\Mail
  • Creare, se non presente, un valore DWORD e rinominarlo in MaxAttachmentMenuItems;
  • I valori accettati sono decimali da 0 a 20 che rappresentano il numero di file recenti visualizzati in elenco. Assegnando a MaxAttachmentMenuItems il valore 0 l'elenco verrà disattivato.
    MaxAttachmentMenuItems
    FIG 2 - MaxAttachmentMenuItems

Outlook, Elenco file recenti disattivato
FIG 3 - Outlook, Elenco file recenti disattivato




domenica 8 novembre 2020

MS Outlook: Inserire un emoji in un'email tramite VBA

In Outlook, tramite VBA, è possibile inserire determinate emoji, simboli o testi all'interno del messaggio di posta elettronica. In questo articolo verrà mostrato passo passo come raggiungere tale scopo. Per poter inserire il testo o l'oggetto desiderato a partire dalla posizione del cursore verrà utilizzato Word Object model.

Per le emoji verrà utilizzato il metodo ChrW che restituisce il carattere associato al codice carattere specificato. Al metodo va passato il codice UTF-16 (Unicode Transformation Format 16 bit: una codifica di caratteri Unicode in sequenze di numeri a 16-bit) relativo all'emoji che si vuole inserire. I codici UTF-16 delle emoji possono essere trovati su molti siti online tra cui The Ultimate Emoji Guide.

Prima di poter poter utilizzare i codici con il metodo ChrW bisogna andare a sostituire i caratteri 0x presenti nel codice UTF-16 con &H

Ad esempio:
Supponiamo di voler inserire l'emoji di una torta di compleanno. Ricerchiamola sul sito The Ultimate Emoji Guide (o su uno dei tanti siti online che forniscono i codici UTF-16) e apriamo la relativa pagina. I codici UTF-16 relativi a tale emoji sono 
0xD83C e 0xDF82
per poterli utilizzare con il metodo ChrW dobbiamo sostituire 0x con &H quindi i codici diventano
&HD83C e &DF82

Emoji Torta di compleanno
FIG 1 - Emoji Torta di compleanno

Codice UTF-16 Torta di compleanno
FIG 2 - Codice UTF-16 Torta di compleanno


Vediamo passo passo come procedere:
  • Avviare Outlook;
  • Avviare Microsoft Visual Basic, Application Edition tramite la combinazione di tasti ALT+F11;
  • Nella visualizzazione ad albero del progetto, sul lato sinistro della finestra, selezionare ThisOutlookSession;
    Outlook - Microsoft Visual Basic, Applications Edition
    FIG 3- Outlook - Microsoft Visual Basic, Applications Edition

  • Copiare e incollare il seguente script;
    Dim strCode As String
    
    Sub InserisciTesto()
    strCode = "Testo inserito tramite VBA "
    Inserisci
    End Sub
    
    Sub InserisciFantasma()
    strCode = ChrW(&HD83D) & ChrW(&HDC7B)
    Inserisci
    End Sub
    
    Sub InserisciTorta()
    strCode = ChrW(&HD83C) & ChrW(&HDF82)
    Inserisci
    End Sub
    
    
    Private Sub Inserisci()
         
    Dim objItem As Object
    Dim objInsp As Outlook.Inspector
    Dim objWord As Word.Application
    Dim objDoc As Word.Document
    Dim objSel As Word.Selection
    
    Set objItem = Application.ActiveInspector.currentItem
    Set objInsp = objItem.GetInspector
    Set objDoc = objInsp.WordEditor
    Set objWord = objDoc.Application
    Set objSel = objWord.Selection
    
    objSel.InsertBefore strCode
    objSel.Move wdCharacter, 1
    
    Set objItem = Nothing
    Set objInsp = Nothing
    Set objDoc = Nothing
    Set objWord = Nothing
    Set objSel = Nothing
    End Sub
  • Dal menu Strumenti->Riferimenti selezionare Microsoft Word 16.0 Object Library e cliccare su OK (16.0 rappresenta la versione di Office);
    Microsoft Word 16.0 Object Library
    FIG 4 - Microsoft Word 16.0 Object Library

  • Salvare lo script cliccando sull'apposita icona e ritornare alla finestra di Outlook;
  • Dal menu File->Opzioni selezionare Personalizzazione barra multifunzione;
  • Nell'elenco Schede principali (sulla destra) aggiungere il segno di spunta alla voce Sviluppo e cliccare su OK;
    Outlook - Personalizzazione barra multifunzione
    FIG 5 - Outlook, Personalizzazione barra multifunzione

  • Per questioni di sicurezza le macro sono disattivate, pertanto dobbiamo procedere alla loro abilitazione. Dalla scheda Sviluppo cliccare su Sicurezza macro;
    Sicurezza macro
    FIG 6 - Sicurezza macro

  • Dalla finestra Centro protezione, nella sezione Impostazioni macro, selezionare Visualizza notifiche per tutte le macro. In questo modo quando si tenta di avviare la Macro verrà richiesto se attivarla o meno.

    Visualizza notifiche per tutte le macro
    FIG 7 - Visualizza notifiche per tutte le macro
Nel codice abbiamo creato tre procedure: 
  • InserisciTesto, inserisce il testo "Testo inserito tramite VBA" all'interno del messaggio;
  • InserisciFantasma, inserisce l'emoji di un fantasma;
  • InserisciTorta, inserisce l'emoji della torta.
Per inserire le nostre emoji o il nostro testo, nella creazione di un nuovo messaggio basta selezionare il menu Sviluppo quindi cliccare su Macro e, una volta accettata l'attivazione, selezionare una delle 3 procedure indicate.
Macro inserimento Emoji/Testo
FIG 8 - Macro inserimento Emoji/Testo








lunedì 25 maggio 2020

Outlook: Individuare i file PST connessi al profilo Outlook tramite registro di sistema

Ogni volta che viene aggiunto un file PST ad Outlook, viene generata una nuova chiave all'interno del registro di sistema. Il nome della chiave, per questioni di sicurezza, viene generato in maniera casuale mentre il percorso e il nome del file PST connesso al profilo Outlook è contenuto all'interno del valore binario 001f6700.

Per ricercare manualmente il valore possiamo avviare l'editor del registro di sistema (regedit.exe) e posizionarci sulla chiave di registro del nostro profilo di posta. Il percorso del profilo varia in base alla versione di Outlook:

Per Outlook 2010 posizionarsi su
[HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem\Profiles\<nome_profilo_posta>]

Per Outlook 2013 e successivi la chiave di registro contenente il profilo è del tipo
[HKEY_CURRENT_USER\Software\Microsoft\Office\<versione>\Outlook\Profiles\<nome_profilo_posta>]
Ad esempio, per Outlook 2013 è
[HKEY_CURRENT_USER\Software\Microsoft\Office\15.0\Outlook\Profiles\<nome_profilo_posta>]
mentre per Outlook 2016 la chiave è
[HKEY_CURRENT_USER\Software\Microsoft\Office\16.0\Outlook\Profiles\<nome_profilo_posta>]


Una volta in posizione possiamo ricercare il valore binario 001f6700
Editor del Registro di sistema, valore 001f6700
FIG 1 - Editor del Registro di sistema, valore 001f6700

Un modo più semplice consiste nell'utilizzare uno script che, fornita la chiave di registro relativa al profilo Outlook, si occupa di individuare tutti i valori 001f6700 e trasformarli da valori binari in stringhe. Di seguito è riportato un semplcie script PowerShell che permette di automatizzare l'operazione.


$keys = Get-ChildItem HKCU:\software\microsoft\office\16.0\OUTLOOK\profiles\Posta -rec -ea SilentlyContinue | Where-Object {(Get-ItemProperty -path $_.PSPath) -match "001f6700"} | select -Property Property, Name, PSPath
foreach($chiave in $KEYS.PSPath){
  $valore = Get-ItemPropertyValue $chiave -Name 001f6700
  [Text.Encoding]::unicode.getString($valore.syncroot) 
}


Per individuare le chiavi di registro che contengono i valori 001f6700 ci avvaliamo dell'utilizzo dei cmdlet Get-ChildItem e Get-ItemProperty. A Get-ChildItem passiamo la chiave di registro relativa al profilo Outlook che vogliamo analizzare (HKCU:\software\microsoft\office\16.0\OUTLOOK\profiles\Posta), indichiamo che la ricerca deve essere effettuata anche sulle sottochiavi (-rec o -recurse) e che in caso di errore intendiamo proseguire senza visualizzare alcun messaggio (-ea SilentlyContinue oppure -ErrorAction SilentlyContinue).
Con la condizione Where-Object e Get-ItemProperty andiamo ad individuare solo le chiavi che contengono valori 001f6700.
Con il ciclo foreach scorriamo tutte le chiavi di registro individuate dall'istruzione precedente, estraiamo il contenuto del valore 001f6700 con Get-ItemPropertyValue e trasformiamo il valore binario in stringa in modo da renderlo leggibile. In output avremo l'elenco dei file PST connessi al profilo di Outlook specificato.





mercoledì 19 febbraio 2020

MS Outlook Quick Tip: Impostazioni del registro di sistema relative alla gestione dei messaggi contenenti richieste di conferma di lettura

Quando si riceve un'email contenente una richiesta di conferma di lettura MS Outlook, per default, chiede all'utente se inviare il messaggio di  conferma. 


Microsoft Outlook, Richiesta invio conferma di lettura
FIG 1 - Microsoft Outlook, Richiesta invio conferma di lettura

Per modificare tale comportamento è possibile agire tramite le opzioni del client di posta:
  • Dal menu File di Outlook selezionare Opzioni;
  • Sul lato sinistro selezionare Posta;
  • Scorrere fino alla sezione Verifica;
  • Selezionare uno dei tre comportamenti predefiniti quando si riceve un messaggio con una richiesta in conferma di lettura:
    Invia sempre la conferma di lettura

    Non inviare mai una conferma di lettura

    Chiedi ogni volta se inviare una conferma di lettura
    Microsoft Outlook, Gestione messaggio contenente richiesta conferma lettura
    FIG 2 - Microsoft Outlook, Gestione messaggio contenente richiesta conferma lettura


L'operazione può essere eseguita anche tramite il registro di sistema:
  • Premere la combinazione di tasti WIN+R per aprire la finestra di dialogo Esegui e digitare regedit seguito da invio per avviare l'Editor del registro di sistema;
  • Posizionarsi sulla chiave
    HKEY_CURRENT_USER\Software\Microsoft\Office\XX.0\Outlook\Options\Mail 
    Al posto di XX va indicata la versione di Office (16 per Office 2016, 15 per Office 2013, 14 per Office 2010, 13 per Office 2007) 
  • Creare, se non presente, un valore DWORD (32 bit) e nominarlo Receipt Response;
  • Cliccare due volte sul valore appena creato e, nella casella Dati valore, digitare un valore compreso tra 0 e 2 in base all'opzione che si intende attivare:
    0 = Invia sempre la conferma di lettura
    1 = Non inviare mai una conferma di lettura
    2 = Chiedi ogni volta se inviare una conferma di lettura
    Editor del Registro di sistema, valore Receipt Response
    FIG 3 - Editor del Registro di sistema, valore Receipt Response
  • Riavviare Outlook per applicare la modifica.





giovedì 19 settembre 2019

MS Outlook: Modificare la cartella di default suggerita nel salvataggio degli allegati

Quando si tenta di salvare gli allegati contenuti all'interno di un'email, MS Outlook propone una cartella di default. Durante il salvataggio è possibile selezionare un percorso diverso e MS Outlook proporrà l'ultimo percorso utilizzato per i salvataggi successivi finché non verrà riavviato. 
MS Outlook, Salva tutti gli allegati
FIG 1 - MS Outlook, Salva tutti gli allegati


Per modificare il path di default suggerito da MS Outlook durante il salvataggio degli allegati:
  • Premere la combinazione di tasti WIN+R per aprire la finestra di dialogo Esegui e digitare regedit seguito da invio per avviare l'editor del registro di sistema;
  • Posizionarsi su 
    HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\xx.0\Outlook\Options 

    Al posto di xx va indicata la versione di Office installata ad es. 

    Per Outlook 2016 - HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\16.0\Outlook\Options 

    Per Outlook 2013 - HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\15.0\Outlook\Options 

    Per Outlook 2010 - HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\14.0\Outlook\Options 

    Per Outlook 2007 - HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\12.0\Outlook\Options 

    Per Outlook 2003 - HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\11.0\Outlook\Options 
  • Creare, se non presente, un nuovo valore di tipo Stringa e rinominarlo in DefaultPath;
  • Eseguire un doppio click sul valore appena creato e, nella casella Dati valore, digitare il percorso in cui si intende salvare gli allegati di MS Outlook.
  • Riavviare il client di posta per rendere effettive la modifica.
MS Outlook, Modifica path di default salvataggio degli allegati
FIG 2 - MS Outlook, Modifica path di default salvataggio degli allegati


Se il path non è impostato MS Outlook utilizzerà quello di default impostato in MS Word. In alcune versioni, a causa di un bug, Outlook 2016 potrebbe suggerire come percorso C:\windows\system32.



Modificare il percorso suggerito dalle applicazioni Office per l'apertura/salvataggio di documenti

Per modificare il percorso che le applicazioni del pacchetto MS Office utilizzano per aprire e salvare i file e MS Outlook per inserire allegati:
  • Avviare MS Word o MS Excel;
  • Dal menu File selezionare Opzioni;
  • Selezionare la sezione Salvataggio;
  • Digitare, nella casella Percorso file locale predefinito, il percorso desiderato quindi cliccare su OK per salvare la modifica.

MS Word, Percorso file locale predefinito
FIG 3 - MS Word, Percorso file locale predefinito







venerdì 14 giugno 2019

MS Outlook: Visualizzare gli indirizzi dei destinatari nell'elenco messaggi della posta inviata

Nell'articolo Outlook: Visualizzare l'indirizzo email del mittente nel riquadro elenco messaggi  è stato mostrato come visualizzare l'indirizzo del mittente nell'elenco messaggi della posta in arrivo attraverso l'utilizzo di moduli personalizzati. Per visualizzare gli indirizzi dei destinatari nella cartella posta inviata non è possibile adottare lo stesso metodo ma bisogna procedere in modo diverso. In questo articolo illustrerò come raggiungere l'obiettivo tramite l'utilizzo di macro. 

La prima macro che verrà mostrata consente di aggiungere una nuova colonna all'interno della cartella posta inviata: Destinatari. Affinché la nuova colonna venga compilata con gli indirizzi dei destinatari è necessario selezionare le email di proprio interesse ed eseguire la macro. Vediamo passo passo come procedere:
  • In Outlook, dal menu File -> Opzioni selezionare Personalizzazione barra multifunzione
  • Nell'elenco Schede principali (sulla destra) aggiungere il segno di spunta alla voce Sviluppo e cliccare su OK;
    Outlook, Scheda Sviluppo
    FIG 1 - Outlook, Scheda Sviluppo
  • Dalla scheda Sviluppo cliccare su Sicurezza macro;
    Outlook, Sicurezza macro
    FIG 2 - Outlook, Sicurezza macro
  • Dalla finestra Centro protezione, nella sezione Impostazioni macro, selezionare Visualizza notifiche per tutte le macro. In questo modo all'avvio di Outlook verrà richiesto se eseguire la macro.
    Outlook, Visualizza notifiche per tutte le macro
    FIG 3 - Outlook, Visualizza notifiche per tutte le macro
  • Avviare Microsoft Visual Basic, Application Edition tramite la combinazione di tasti ALT+F11;
  • Nella visualizzazione ad albero del progetto, sul lato sinistro della finestra, cliccare 2 volte su ThisOutlookSession;
    Outlook, Microsoft Visual Basic, Application Edition
    FIG 4 - Outlook, Microsoft Visual Basic, Application Edition
  • Copiare e incollare il seguente script;
    Public Sub IndirizziDestinatari()
        Dim currentExplorer As Explorer
        Dim Selezione As Selection
        Dim obj, objMail As Object
        Dim objProp As Outlook.UserProperty
        Dim strDomain
        Dim Recipients As Outlook.Recipients
        Dim recip As String 'Casella di posta
        Dim i
         
        Set currentExplorer = Application.ActiveExplorer
        Set Selezione = currentExplorer.Selection
     
        On Error Resume Next
     
     For Each obj In Selezione
         Set objMail = obj
      strDomain = ""
      Set Recipients = objMail.Recipients
        For i = Recipients.count To 1 Step -1
        recip$ = Recipients.item(i).Address    
         ' Per elaborare gli indirizzi x.500
           If InStr(1, LCase(recip), "/ou=") Then recip = Right(recip, Len(recip) - InStr(1, LCase(recip), "recipients") - 13)
    
         ' Aggiunge ; se sono presenti più indirizzi
        If i = 1 Then
         strDomain = strDomain & recip
        Else
         strDomain = strDomain & recip & "; "
        End If
        Next i
        
          Debug.Print strDomain
        Set objProp = objMail.UserProperties.Add("Destinatari", olText, True)
        objProp.Value = strDomain
        objMail.Save
        Err.Clear
     Next
      
        Set currentExplorer = Nothing
        Set obj = Nothing
        Set Selezione = Nothing
    End Sub
    
  • Salvare cliccando sull'apposita icona quindi ritornare alla finestra principale di Outlook;
    Outlook, Macro VBA IndirizziDestinatari
    FIG 5 - Outlook, Macro VBA IndirizziDestinatari
  • Selezionare la cartella Posta inviata e selezionare un'email, o un gruppo di email, per le quali si intende visualizzare l'indirizzo email dei destinatari;
  • Selezionare la scheda Sviluppo, cliccare su Macro quindi selezionare la macro creata;
    Outlook, Esecuzione Macro
    FIG 6 - Outlook, Esecuzione Macro
  • Dalla scheda Visualizza, selezionare Cambia visualizzazione e impostare l'opzione Singola;

    FIG 7 - Outlook, Visualizzazione Singola
  • Sempre dalla scheda Visualizza, selezionare Impostazioni visualizzazione quindi cliccare sul pulsante Colonne;
    Outlook, Colonne
    FIG 8 - Outlook, Colonne
  • Nella casella Seleziona colonne disponibili da selezionare Campi definiti dall'utente nella cartella;
  • Nella casella Colonne disponibili verrà elencata la colonna Destinatari creata dalla nostra macro, selezionarla e cliccare sul pulsante Aggiungi per aggiungere la nuova colonna alla visualizzazione. É possibile spostare la colonna nella posizione desiderata tramite i pulsanti Sposta su e Sposta giù quindi confermare la modifica cliccando su OK e poi ancora su OK per tornare ad Outlook.
    FIG 9 - Outlook, Aggiungere la colonna Destinatari


In un'infrastruttura MS Exchange Server gli indirizzi possono essere visualizzati come indirizzi x.500 e non come indirizzo SMTP. Un indirizzo x.500 è una stringa simile alla seguente
/o=azienda /ou=Exchange Administrative Group (FYDIBOHF23SPDLT)/cn=Recipients/cn=<user name o email>
All'interno della macro gli indirizzi x.500 vengono gestiti con la seguente riga di codice
If InStr(1, LCase(recip), "/ou=") Then recip = Right(recip, Len(recip) - InStr(1, LCase(recip), "recipients") - 13)
che preleva l'ultima parte dell'indirizzo x.500 (quella successiva alla stringa Recipients) dove è contenuto l'user name o l'indirizzo di posta.

La procedura sopra esposta funziona per i messaggi già inviati. Per fare in modo che il campo venga valorizzato automaticamente ad ogni invio di un'email:
  • Da Outlook, avviare Microsoft Visual Basic, Application Edition tramite la combinazione di tasti ALT+F11;
  • Nella visualizzazione ad albero del progetto, sul lato sinistro della finestra, selezionare ThisOutlookSession;
  • Posizionarsi nella prima riga della pagina quindi copiare ed incollare il seguente codice VBA
    Dim WithEvents olSent As Items
      
    Private Sub Application_Startup()
       Dim NS As Outlook.NameSpace
       Set NS = Application.GetNamespace("MAPI")
       Set olSent = NS.GetDefaultFolder(olFolderSentMail).Items
       Set NS = Nothing
    End Sub
      
    Private Sub olSent_ItemAdd(ByVal Item As Object)
        Dim objProp As Outlook.UserProperty
        Dim strDomain As String
        Dim Recipients As Outlook.Recipients
        Dim recip As String 'Casella di posta
        Dim i
                       
    strDomain = ""
    Set Recipients = Item.Recipients
      For i = Recipients.count To 1 Step -1
         recip$ = Recipients.Item(i).Address
         ' Per elaborare gli indirizzi x.500
         If InStr(1, LCase(recip), "/ou=") Then recip = Right(recip, Len(recip) - InStr(1, LCase(recip), "recipients") - 13)
         ' Aggiunge ; se sono presenti più indirizzi
         If i = 1 Then
             strDomain = strDomain & recip
         Else
             strDomain = strDomain & recip & "; "
         End If
      Next i
          
      Set objProp = Item.UserProperties.Add("Destinatari", olText, True)
        objProp.Value = strDomain
        Item.Save
      
        Err.Clear
             
        Set objProp = Nothing
        Set Recipients = Nothing
             
     End Sub
    
  • Riavviare Outlook e provare ad inviare un nuovo messaggio.
    Outlook, Campo Destinatari
    FIG 10 - Outlook, Campo Destinatari






venerdì 7 dicembre 2018

MS Outlook: Aprire le cartelle Posta in Arrivo, Calendario, Attività e Contatti in più finestre all'avvio di Outlook

Alcuni utenti potrebbero trovare utile che all'avvio di Outlook vengono aperte le cartelle Posta in Arrivo, Calendario, Attività e Contatti in diverse finestre con dimensioni personalizzate. 
Per raggiungere tale scopo è possibile utilizzare VBA:
  • Avviare Outlook;
  • Dal menu File->Opzioni selezionare Personalizzazione barra multifunzione;
  • Nell'elenco Schede principali (sulla destra) aggiungere il segno di spunta alla voce Sviluppo e cliccare su OK;
    Outlook, Personalizza barra multifunzione
    FIG 1 - Outlook, Personalizza barra multifunzione
  • Avviare Microsoft Visual Basic, Application Edition tramite la combinazione di tasti ALT+F11;
  • Nella visualizzazione ad albero del progetto, sul lato sinistro della finestra, selezionare ThisOutlookSession;
    Outlook, Microsoft Visual Basic Application Edition
    FIG 2 - Outlook, Microsoft Visual Basic Application Edition
  • Copiare e incollare il seguente script;
    Private Sub Application_Startup()
     Dim olExp As Outlook.Explorer
     Dim objInbox As Folder
     Dim objCalendar As Folder
     Dim objContacts As Folder
     Dim objTasks As Folder
    
     Set objInbox = Application.ActiveExplorer.CurrentFolder
     Set objCalendar = Session.GetDefaultFolder(olFolderCalendar)
     Set objContacts = Session.GetDefaultFolder(olFolderContacts)
     Set objTasks = Session.GetDefaultFolder(olFolderTasks)
    
    'Apre la cartella Contatti in una finestra di Outlook ridotta ad icona (olMinimized)
     objContacts.Display
     Set olExp = Application.ActiveExplorer
     With olExp
         .WindowState = olMinimized
     End With
    
    'Apre la cartella Attività in una finestra di Outlook ridotta ad icona (olMinimized)
     objTasks.Display
     Set olExp = Application.ActiveExplorer
     With olExp
         .WindowState = olMinimized
     End With
    
    'Apre la cartella Calendario in una finestra normale di Outlook (olNormalWindow)
     objCalendar.Display
     Set olExp = Application.ActiveExplorer
     With olExp
         .WindowState = olNormalWindow
     End With
    
    'Apre la cartella Posta in arrivo in una finestra massimizzata di Outlook (olMaximized)
     objInbox.Display
     Set Application.ActiveExplorer.CurrentFolder = objInbox
     Set olExp = Application.ActiveExplorer
     olExp.WindowState = olMaximized
    
    End Sub
    
  • Attraverso la proprietà WindowState di Outlook.Explorer è possibile indicare se aprire la cartella in una finestra normale (olNormalWindow), ridotta (olMinimized) o ingrandita (olMaximized).  Salvare lo script cliccando sull'apposita icona e ritornare alla finestra di Outlook;
  • Dalla scheda Sviluppo cliccare su Sicurezza macro;
    Outlook, Sicurezza macro
    FIG 3 - Outlook, Sicurezza macro
  • Dalla finestra Centro protezione, nella sezione Impostazioni macro, selezionare Visualizza notifiche per tutte le macro. In questo modo all'avvio di Outlook verrà richiesto se eseguire la macro.
    Outlook, Visualizza notifiche per tutte le macro
    FIG 4 - Outlook, Visualizza notifiche per tutte le macro
Per agire sulla posizione e sulla dimensione delle finestre aperte si utilizzano le proprietà Top, Left, Height, Width che consentono di specificare la distanza in pixel della finestra dalla parte alta dello schermo, la distanza dal bordo sinistro, l'altezza della finestra e la sua larghezza. 
Ad. es volendo aprire la finestra con il Calendario di Outlook, spostarla in altro a sinistra dello schermo e impostare la dimensione 800x1000 lo script è il seguente:

Private Sub Application_Startup()
 Dim olExp As Outlook.Explorer
 Dim objInbox As Folder
 Dim objCalendar As Folder
 Dim objContacts As Folder
 Dim objTasks As Folder

 Set objInbox = Application.ActiveExplorer.CurrentFolder
 Set objCalendar = Session.GetDefaultFolder(olFolderCalendar)
 Set objContacts = Session.GetDefaultFolder(olFolderContacts)
 Set objTasks = Session.GetDefaultFolder(olFolderTasks)

'Apre la cartella Contatti in una finestra di Outlook ridotta ad icona (olMinimized)
 objContacts.Display
 Set olExp = Application.ActiveExplorer
 With olExp
     .WindowState = olMinimized  
 End With

'Apre la cartella Attività in una finestra di Outlook ridotta ad icona (olMinimized)
 objTasks.Display
 Set olExp = Application.ActiveExplorer
 With olExp
     .WindowState = olMinimized
 End With

'Apre la cartella Calendario in una finestra normale di Outlook (olNormalWindow)
 objCalendar.Display
 Set olExp = Application.ActiveExplorer
 With olExp
     .WindowState = olNormalWindow
     .Top = 0
     .Left = 0
     .Height = 800
     .Width = 1000
 End With

'Apre la cartella Posta in arrivo in una finestra massimizzata di Outlook (olMaximized)
 objInbox.Display
 Set Application.ActiveExplorer.CurrentFolder = objInbox
 Set olExp = Application.ActiveExplorer
 olExp.WindowState = olMaximized

End Sub

Se si vogliono aprire più finestre di Outlook in modo che siano sfalsate tra loro come mostrato in FIG 5, il codice da copiare è il seguente:
Private Sub Application_Startup()
 Dim objInbox As Folder
 Dim objCalendar As Folder
 Dim objContacts As Folder
 Dim objTasks As Folder

 Set objInbox = Application.ActiveExplorer.CurrentFolder
 Set objCalendar = Session.GetDefaultFolder(olFolderCalendar)
 Set objContacts = Session.GetDefaultFolder(olFolderContacts)
 Set objTasks = Session.GetDefaultFolder(olFolderTasks)

 objCalendar.Display
 objContacts.Display
 objTasks.Display

 Dim olExps As Outlook.Explorers
 Set olExps = Application.Explorers

 Dim oTop As Long, oLeft As Long
 oTop = 100
 oLeft = 200

 For x = 1 To olExps.Count

  With olExps.Item(x)
      .WindowState = olNormalWindow
      .Top = oTop
      .Left = oLeft
      .Height = 800
      .Width = 1000
  End With
 oTop = oTop + 50
 oLeft = oLeft + 50

 Next x

 Set Application.ActiveExplorer.CurrentFolder = objInbox
End Sub
Outlook, Finestre sfalsate
FIG 5 - Outlook, Finestre sfalsate