2010-03-26 11 views
5

Ho inserito il codice in ItemSend e salvato il modulo ThisOutlookSession. Ha funzionato una volta e non funziona più. È stato salvato come VBAproject.OTM ed è ancora lì quando apro il modulo dopo il riavvio di Outlook.BCC nell'evento ItemSend in Outlook 2007 non funziona più

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 = "[email protected]" 

    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 

    Set objRecip = Nothing 
End Sub 
+0

FWIW un indirizzo di posta elettronica verrà sempre risolto, quindi non è necessario chiamare il metodo di risoluzione o controllarne il valore. – JimmyPena

risposta

2

Se stai agganciando l'evento ItemSend, che dovrebbe essere in un modulo di classe con WithEvents e il codice per chiamare in un modulo regolare. Inoltre, ti consigliamo di fare un Item.Save sul messaggio per il BCC da attaccare.

3

uso e se dichiarazione sulla Voce Oggetto del campo

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

If Item.Subject = "exact match" Then 

    strBcc = "[email protected]" 

    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 
    Item.Save 

    Set objRecip = Nothing 


End If 

o utilizzare se si vuole un contiene una parola nel soggetto

If InStr(Item.Subject, "BCCSubject") = 0 Then 


End If 
0

ho avuto questo problema di recente. È iniziato dopo che il file .pst era danneggiato in qualche modo e dovevo eseguire scanpst.exe (che dovevo cercare nell'unità perché il messaggio di errore non ti indica dov'è)

Dopo aver eseguito scanpst.exe e il problema si è presentato, è così che l'ho risolto.

In primo luogo, ho giocato con la sicurezza macro. L'ho impostato sull'impostazione più bassa. Here is a link that covers how to change macro security. Vai su Strumenti> Macro> Sicurezza. L'ho impostato su "Nessun controllo di sicurezza per i macro".

Poi ho usato questo codice esatto:

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 = "PUT YOUR EMAIL ADDRESS HERE AND LEAVE THE QUOTES" 

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 

Set objRecip = Nothing 

End Sub 

Poi ho cliccato piccolo pulsante di riproduzione verde per eseguire la macro sul pulsante Salva poi. Mi ha chiesto un nome Macro. Ho usato bccUsername e ho fatto clic su create. L'editor ha aggiunto una sezione denominata Modules in ThisOutLookSession.

Ho quindi riavviato Outlook e testato due volte e ha funzionato.

Non sono proprio sicuro di quello che ho fatto che ha fatto ricominciare a funzionare, ma questo non è troppo coinvolto con i passaggi, quindi spero che questo aiuti voi e gli altri con lo stesso problema.