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

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





venerdì 17 agosto 2018

MS Outlook: Modificare il percorso del file OST tramite registro di sistema

Outlook configurato in modalità cache genera un file di dati offline con estensione OST per gli account IMAP, Office 365, Exchange e gli account Outlook.com. Il file OST viene utilizzato per archiviare, localmente sul computer, una copia sincronizzata della casella di posta al fine di consentire la consultazione delle email anche quando si è offline.
Il percorso di default dove viene creato il file .OST è:
%LOCALAPPDATA%\Microsoft\Outlook

Per forzare Outlook a creare il file .OST in un percorso diverso è possibile procedere 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
    dove al posto di XX va specificata la versione di Office (16 per Office 2016, 15 per Office 2013, 14 per Office 2010);
  • Creare un nuovo valore stringa espandibile e rinominarlo in ForceOSTPath;
    Regedit, Creare il valore stringa espandibile ForceOSTPath
    FIG 1 - Regedit, Creare il valore stringa espandibile ForceOSTPath
  • Cliccare con il tasto destro su  ForceOSTPath quindi selezionare Modifica
  • Nella casella Dati valore digitare il percorso completo del quale si desidera memorizzare il file OST (ad es. C:\Posta) e cliccare su OK per confermare la modifica.
    Regedit, Assegnare a ForceOSTPath il percorso in cui si intende creare il file OST
    FIG 2 - Regedit, Assegnare a ForceOSTPath il percorso in cui si intende creare il file OST
I nuovi profili Outlook creati dopo tale modifica avranno il file OST posizionato nel path specificato.

Il percorso del file OST può essere forzato anche tramite policy, in questo caso il valore ForceOSTPath viene creato all'interno del registro di sistema in 
HKEY_CURRENT_USER\Software\Policies\Microsoft\Office\XX.0\Outlook



venerdì 20 luglio 2018

MS Outlook: Rimuovere 'Non inviare una risposta' in una convocazione di riunione

Quando si riceve un invito ad una riunione è possibile accettarlo senza inviare una risposta selezionando l'apposita opzione come mostrato in FIG 1.
Outlook, Non inviare una risposta ad una convocazione di riunione
FIG 1 - Outlook, Non inviare una risposta ad una convocazione di riunione

Per rimuovere l'opzione Non inviare una risposta è necessario agire tramite il registro di sistema o tramite policy. I passaggi da seguire variano in base alla versione di Outlook utilizzata.
Prima di procedere con la modifica del registro di sistema, chiudere Outlook.


Outlook 2016

In Outlook 2016 la possibilità di rimuovere completamente dal menu l'opzione Non inviare una risposta è stata introdotta con l'aggiornamento KB4022230 rilasciato il 3 luglio 2018. Se nel sistema è installato tale aggiornamento è possibile procedere con i seguenti passaggi:
  • 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\16.0\Outlook\Options\Calendar;
  • Creare, se non presente, un valore DWORD (32 bit) e nominarlo ForceMtgResponse;
  • Cliccare due volte sul valore appena creato, impostare in Base l'opzione Decimale quindi, nella casella Dati valore, digitare 1.
Gli amministratori di sistema possono aggiungere la chiave di registro usando le Group Policy:
HKEY_CURRENT_USER\Software\Policies\Microsoft\Office\16.0\Outlook\Options\Calendar
DWORD: ForceMtgResponse
Value: 1

Al successivo avvio di Outlook, all'interno di un invito, non verrà più mostrata l'opzione Non inviare una risposta.
Outlook, Rimuovere l'opzione Non inviare una risposta
FIG 2 - Outlook, Rimuovere l'opzione Non inviare una risposta
Dal seguente link è possibile scaricare i file .reg per rimuovere/ripristinare la voce Non inviare una risposta sia tramite chiavi di registro che tramite group policy.
DOWNLOAD



Outlook 2013 (e Outlook 2016 non aggiornato)

Per Outlook 2013 e per le versioni non aggiornate alla KB4022230 di Outlook 2016 è possibile disabilitare (e non eliminare del tutto) l'opzione utilizzando i CommandID:
  • 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\Policies\Microsoft\Office\x.0\Outlook\DisabledCmdBarItemsList
    Dove al posto di x.0 ci sarà 16.0 per Office 2016 oppure 15.0 per Office 2013;
  • Creare, se non presente, un valore stringa, rinominarlo in TCID1 quindi assegnargli il valore 19987. Tale CommandID disabilita la voce Non inviare una risposta nel menu del pulsante Accetta.
  • Creare, se non presente, un valore stringa, rinominarlo in TCID2 quindi assegnargli il valore 19995 Tale CommandID disabilita la voce Non inviare una risposta nel menu del pulsante Provvisorio.
  • Creare, se non presente, un valore stringa, rinominarlo in TCID3 quindi assegnargli il valore 19991 Tale CommandID disabilita la voce Non inviare una risposta nel menu del pulsante Rifiuta.

Outlook, Disabilitare l'opzione Non inviare una risposta tramite registro di sistema e CommandID
FIG 3 - Outlook, Disabilitare l'opzione Non inviare una risposta tramite registro di sistema e CommandID

Outlook, Disabilitare l'opzione Non inviare una risposta
FIG 4 - Outlook, Disabilitare l'opzione Non inviare una risposta

Di seguito è possibile scaricare i file .reg per Disabilitare/Abilitare la voce Non inviare una risposta in Outlook 2013/2016.
DOWNLOAD