Finalità
Questo esempio di codice VBA viene richiamato ad ogni invio di email, ed aggiunge tra i destinatari nascosti (cioè quelli associati al campo CCn/BCc) un indirizzo specifico, sempre costante.
Si tratta di una procedura richiesta da molti utenti ed utilizzata come strumento rudimentale per tenere traccia dei messaggi inviati grazie all'archiviazione in altra cartella di posta.
Per maggiori approfondimenti sulla funzionalità si può fare riferimento a questo articolo:
http://www.msoutlook.it/index.php?option=com_content&view=article&id=62
"Aggiungere automaticamente destinatari in Ccn (Bcc)"
Breve descrizione della procedura
Il codice è scritto all'interno della procedura di evento ItemSend dell'oggetto Application, evento predefinito del sistema che viene scatenato dopo la pressione del tasto "Invia" di un messaggio. In questa fase è ancora possibile sospendere l'invio settando la variabile locale Cancel al valore TRUE.
La procedura richiama il metodo per aggiungere all'elemento corrente (cioè il messaggio che si sta inviando) un nuovo indirizzo all'elenco dei destinatari (.Recipients.Add), da considerare come elemento nascosto (grazie al parametro di tipo olBCC).
La procedura controlla altresì che la risoluzione dell'indirizzo vada a buon fine (quindi che l'indirizzo del destinatario in Ccn sia corretto dal punto di vista della sintassi oppure che venga trovata l'associazione con uno degli elementi presenti in Rubrica), e nel caso in cui si presentasse un problema lo segnala all'utente chiedendo se interrompere la procedura o proseguire comunque nell'invio.
Questo permette di utilizzare sia un indirizzo SMTP (nella forma utente@dominio.it) ma anche un alias come "Nome Congnome" se questo è inserito in Rubrica ed Outlook è quindi in grado di risalire ad un indirizzo email.
Attenzione: nel seguente codice bisogna ricordarsi di sostituire l'indirizzo di esempio utente@dominio.it con l'indirizzo vero e proprio a cui si vogliono inviare i messaggi.
Dim objRecip As Recipient, strMsg As String, res As Integer, strBcc As String
On Error Resume Next
' La seguente variabile deve contenere un indirizzo SMTP valido,
' o un nome che possa essere correttamente risolto tramite la
' Rubrica, e che verrà usato come destinatario aggiuntivo.
' --> RICORDARSI DI INSERIRE UN INDIRIZZO VALIDO! <--
strBcc = "utente@dominio.it"
Set objRecip = Item.Recipients.Add(strBcc)
objRecip.Type = olBCC
' Se la risoluzione dell'indirizzo presenta problemi, viene segnalato all'utente.
If Not objRecip.Resolve Then
strMsg = "Impossibile risolvere l'indirizzo in Ccn. Inviare comunque il messaggio?"
res = MsgBox(strMsg, vbYesNo + vbDefaultButton1, "Risoluzione indirizzo Bcc")
' Se la risposta è negativa, l'invio viene annullato.
If res = vbNo Then Cancel = True
End If
Set objRecip = Nothing
End Sub