Condividi tramite

Inoltro automatico in BCC

Anonimo
2011-01-26T11:10:46+00:00

Salve!

Ho la necessità di far inoltrare in BCC ad un mio indirizzo istituzionale la posta che parte da 2 dei 3 account configurati nel computer del mio collega. Anche i 2 account del collega sono di tipo istituzionale, mentre il terzo è suo personale.

Ho trovato la seguente macro da installare in Outlook 2007 che Roberto Restelli ha suggerito a qualche altro utente:

Private Sub Application_ItemSend(ByVal Item As Object, _ 

                                  Cancel As Boolean) 

  Dim objRecip As Recipient 

  Dim strMsg As String 

  Dim res As Integer 

  Dim strBcc As String 

  On Error Resume Next 

   ' #### USER OPTIONS #### 

   ' address for Bcc -- must be SMTP address or resolvable 

   ' to a name in the address book 

   strBcc = "arch...@prova.it" 

  'Controlla se il messaggio è inviato usando un account 

  ' specifico, ad esempio 'pi...@pippo.it' 

  If Item.SendUsingAccount.SmtpAddress = "pr...@prova.it" Then 

    'Aggiunge l'indirizzo in BCC: 

    Set objRecip = Item.Recipients.Add(strBcc) 

    objRecip.Type = olBCC 

    If Not objRecip.Resolve Then 

      strMsg = "Could not resolve the Bcc recipient. " & _ 

        "Do you want still to send the message?" 

      res = MsgBox(strMsg, vbYesNo + vbDefaultButton1, _ 

        "Could Not Resolve Bcc Recipient") 

      If res = vbNo Then 

        Cancel = True 

      End If 

    End If 

  End If 

  Set objRecip = Nothing 

End Sub

Questa macro è stata da me modificata come segue:

Private Sub Application_ItemSend(ByVal Item As Object, _

                                  Cancel As Boolean)

  Dim objRecip As Recipient

  Dim strMsg As String

  Dim res As Integer

  Dim strBcc As String

  Dim IncludeBCC As Boolean

  On Error Resume Next

   ' #### USER OPTIONS ####

   ' address for Bcc -- must be SMTP address or resolvable

   ' to a name in the address book

   strBcc = "*** L'indirizzo di posta elettronica viene rimosso per motivi di privacy ***"

   IncludeBCC = False

  'Controlla se il messaggio è inviato usando un account

  ' specifico, ad esempio '******@pippo.it'

  If Item.SendUsingAccount.SmtpAddress = "*** L'indirizzo di posta elettronica viene rimosso per motivi di privacy ***" Then IncludeBCC = True

  If Item.SendUsingAccount.SmtpAddress = "*** L'indirizzo di posta elettronica viene rimosso per motivi di privacy ***" Then IncludeBCC = True

  If IncludeBCC Then

    'Aggiunge l'indirizzo in BCC:

    Set objRecip = Item.Recipients.Add(strBcc)

    objRecip.Type = olBCC

    If Not objRecip.Resolve Then

      strMsg = "Could not resolve the Bcc recipient. " & _

        "Do you want still to send the message?"

      res = MsgBox(strMsg, vbYesNo + vbDefaultButton1, _

        "Could Not Resolve Bcc Recipient")

      If res = vbNo Then

        Cancel = True

      End If

    End If

  End If

  Set objRecip = Nothing

End Sub

Dopo aver fatto qualche prova, ho scoperto che la macro funziona troppo bene! Infatti mi manda in BCC sia la posta che parte da*** L'indirizzo di posta elettronica viene rimosso per motivi di privacy ***, sia quella che parte da*** L'indirizzo di posta elettronica viene rimosso per motivi di privacy *** ma anche quella che parte dall'account personale del mio collega*** L'indirizzo di posta elettronica viene rimosso per motivi di privacy ***. E questo francamente è un po' troppo!

Cosa c'è che non va nella macro da me modificata?

Grazie per l'attenzione e cordiali saluti.

Dodomail

Outlook | Windows | Outlook classico per Windows | Per il lavoro

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

3 risposte

Ordina per: Più utili
  1. Anonimo
    2011-01-27T15:38:52+00:00

    Se la mail viene inviata anche nel caso di account personale è probabile che la procedura esegua il loop che inizia con:

     If Item.SendUsingAccount.SmtpAddress = ("topolino_mail" Or "pluto_mail") Then

    Bisognerebbe quindi debuggare il codice mettendo un breakpoint su tale riga e verificare il contenuto della proprietà "Item.SendUsingAccount.SmtpAddress" per accertarsi che l'account del mittente sia effettivamente uno di quelli previsti. Uno dei sospetti che mi sovviene è che l'account personale sia malamente configurato ed utilizzi come indirizzo SMTP uno di quelli aziendali. Non può essere altrimenti.

    Usando sempre il debug si potrebbe andare a controllare le varie proprietà di "Item.SendUsingAccount" per capire quale altra proprietà potrebbe essere utilizzata per discriminare l'account privato da quelli aziendali.

    Approposito: di quali tipi di account si tratta (POP3, IMAP, Exchange)? Viene usata qualche funzionalità come ad esempio il campo "Da:"?

    Ciao

    Roberto


    Roberto Restelli

    Microsoft MVP - Office Systems - Outlook

    ************************************************

    Le FAQ del newsgroup di Outlook: http://www.msoutlook.it

    ************************************************

    Se la risposta ti ha aiutato clicca su "Vota come Utile".

    Se ha risolto il problema clicca su "Segna come Risposta".

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2011-01-27T09:01:44+00:00

    Salve!

    Riporto il precedente post con le correzioni suggeritemi:

    Salve!

    Ho la necessità di far inoltrare in BCC ad un mio indirizzo istituzionale la posta che parte da 2 dei 3 account configurati nel computer del mio collega. Anche i 2 account del collega sono di tipo istituzionale, mentre il terzo è suo personale.

    Ho trovato la seguente macro da installare in Outlook 2007 che Roberto Restelli ha suggerito a qualche altro utente:

    Private Sub Application_ItemSend(ByVal Item As Object, _ 

                                      Cancel As Boolean) 

      Dim objRecip As Recipient 

      Dim strMsg As String 

      Dim res As Integer 

      Dim strBcc As String 

      On Error Resume Next 

       ' #### USER OPTIONS #### 

       ' address for Bcc -- must be SMTP address or resolvable 

       ' to a name in the address book 

       strBcc = "arch...@prova.it" 

      'Controlla se il messaggio è inviato usando un account 

      ' specifico, ad esempio 'pi...@pippo.it' 

      If Item.SendUsingAccount.SmtpAddress = "pr...@prova.it" Then 

        'Aggiunge l'indirizzo in BCC: 

        Set objRecip = Item.Recipients.Add(strBcc) 

        objRecip.Type = olBCC 

        If Not objRecip.Resolve Then 

          strMsg = "Could not resolve the Bcc recipient. " & _ 

            "Do you want still to send the message?" 

          res = MsgBox(strMsg, vbYesNo + vbDefaultButton1, _ 

            "Could Not Resolve Bcc Recipient") 

          If res = vbNo Then 

            Cancel = True 

          End If 

        End If 

      End If 

      Set objRecip = Nothing 

    End Sub

    Questa macro è stata da me modificata come segue:

    Private Sub Application_ItemSend(ByVal Item As Object, _

                                      Cancel As Boolean)

      Dim objRecip As Recipient

      Dim strMsg As String

      Dim res As Integer

      Dim strBcc As String

      Dim IncludeBCC As Boolean

      On Error Resume Next

       ' #### USER OPTIONS ####

       ' address for Bcc -- must be SMTP address or resolvable

       ' to a name in the address book

       strBcc = "paperino_mail"

       IncludeBCC = False

      'Controlla se il messaggio è inviato usando un account

      ' specifico, ad esempio '******@pippo.it'

      If Item.SendUsingAccount.SmtpAddress = "topolino_mail" Then IncludeBCC = True

      If Item.SendUsingAccount.SmtpAddress = "pluto_mail" Then IncludeBCC = True

      If IncludeBCC Then

        'Aggiunge l'indirizzo in BCC:

        Set objRecip = Item.Recipients.Add(strBcc)

        objRecip.Type = olBCC

        If Not objRecip.Resolve Then

          strMsg = "Could not resolve the Bcc recipient. " & _

            "Do you want still to send the message?"

          res = MsgBox(strMsg, vbYesNo + vbDefaultButton1, _

            "Could Not Resolve Bcc Recipient")

          If res = vbNo Then

            Cancel = True

          End If

        End If

      End If

      Set objRecip = Nothing

    End Sub

    Dopo aver fatto qualche prova, ho scoperto che la macro funziona troppo bene! Infatti mi manda in BCC sia la posta che parte datopolino_mail, sia quella che parte da pluto_mail ma anche quella che parte dall'account personale del mio colleganome.cognome_mail. E questo francamente è un po' troppo!

    Cosa c'è che non va nella macro da me modificata?

    Vorrei segnalare che come da suggerimento nella risposta ho provveduto a debuggure il codice e francamente non ho trovato nulla che non vada. Semplicemente, non funziona!

    Ho infine cambiato la macro come segue:

    Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)

    Dim objRecip As Recipient

    Dim strMsg As String

    Dim res As Integer

    Dim strBcc As String

    On Error Resume Next

    ' #### USER OPTIONS ####

    ' address for Bcc -- must be SMTP address or resolvable

    ' to a name in the address book

    strBcc = "paperino_mail"

    'Controlla se il messaggio è inviato usando un account

    ' specifico, ad esempio '******@pippo.it'

    If Item.SendUsingAccount.SmtpAddress = ("topolino_mail" Or "pluto_mail") Then

    'Aggiunge l'indirizzo in BCC:

    Set objRecip = Item.Recipients.Add(strBcc)

    objRecip.Type = olBCC

    If Not objRecip.Resolve Then

    strMsg = "Could not resolve the Bcc recipient. " & _

    "Do you still want to send the message?"

    res = MsgBox(strMsg, vbYesNo + vbDefaultButton1, _

    "Could Not Resolve Bcc Recipient")

    If res = vbNo Then

    Cancel = True

    End If

    End If

    End If

    Set objRecip = Nothing

    End Sub

    Ed ho ottenuto lo stesso scarso risultato. Cioè ricevo le mail sia da topolino_mail, sia da pluto_mail ma anche quella che parte dall'account personale del mio collega nome.cognome_mail.

    In attesa, cordiali saluti.

    Dodomail

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2011-01-26T12:22:38+00:00

    Ehm... il sistema elimina dai post sul form gli indirizzi email, quindi dovresti provare a modificare il tuo post sopra sostituendo gli indirizzi email con un segnaposto che faccia capire meglio. Ad esempio, anzichè il primo indirizzo di posta scrivi qualcosa del tipo: EMAIL1. Per il secondo usi EMAIL2, per il terzo EMAILPRIVATA, ecc.

    La soluzione migliore è poi di debuggare il codice sulla tua macchina, cercando di verificare perchè la procedura entra nel ciclo di invio anche quando non deve...

    Ciao

    Roberto


    Roberto Restelli

    Microsoft MVP - Office Systems - Outlook

    ************************************************

    Le FAQ del newsgroup di Outlook: http://www.msoutlook.it

    ************************************************

    Se la risposta ti ha aiutato clicca su "Vota come Utile".

    Se ha risolto il problema clicca su "Segna come Risposta".

    La risposta è stata utile?

    0 commenti Nessun commento