BCC в событии ItemSend в Outlook 2007 больше не работает - PullRequest
5 голосов
/ 26 марта 2010

Я вставил код в ItemSend и сохранил модуль ThisOutlookSession. Он работал один раз и больше не работает. Он был сохранен как VBAproject.OTM и все еще там, когда я открываю модуль после перезапуска Outlook.

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 = "someone@somewhere.dom"

    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

Ответы [ 3 ]

3 голосов
/ 07 апреля 2010

использование и оператор if в поле Предмет предмета

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

If Item.Subject = "exact match" Then

    strBcc = "someone@somewhere.dom"

    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

или используйте, если хотите, чтобы слово содержалось в теме

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


End If
2 голосов
/ 26 марта 2010

Если вы перехватываете событие ItemSend, оно должно быть в модуле класса с WithEvents и вашим кодом для вызова его в обычном модуле. Кроме того, вы захотите сделать Item.Save в сообщении для BCC, чтобы придерживаться.

0 голосов
/ 12 ноября 2013

У меня недавно была эта проблема. Это началось после того, как файл .pst был каким-то образом поврежден, и мне пришлось запустить scanpst.exe (который мне пришлось искать на моем диске, поскольку в сообщении об ошибке не указано, где он находится)

После запуска scanpst.exe и возникновения проблемы, вот как я ее исправил.

Во-первых, я возился с защитой макросов. Я установил его на самое низкое значение. Вот ссылка, которая описывает, как изменить защиту макросов . Перейдите в Инструменты> Макрос> Безопасность. Я установил «Нет проверки безопасности для макросов».

Тогда я использовал этот точный код:

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

Затем я нажал кнопку сохранения, а затем маленькую зеленую кнопку воспроизведения, чтобы запустить макрос. Он попросил у меня имя макроса. Я использовал bccUsername и нажал кнопку «Создать». Редактор добавил раздел под названием Modules в ThisOutLookSession.

Затем я перезапустил Outlook и дважды проверил, и все заработало.

Я не совсем уверен, что я сделал, чтобы это снова заработало, но это не слишком связано с шагами, так что, надеюсь, это поможет вам и другим с такой же проблемой.

...