Propósito

✔ Programação GLOBAL® - Quaisquer soluções e/ou desenvolvimento de aplicações pessoais, ou da empresa, que não constem neste Blog devem ser tratados como consultoria freelance. Queiram contatar-nos: brazilsalesforceeffectiveness@gmail.com | ESTE BLOG NÃO SE RESPONSABILIZA POR QUAISQUER DANOS PROVENIENTES DO USO DOS CÓDIGOS AQUI POSTADOS EM APLICAÇÕES PESSOAIS OU DE TERCEIROS.

.: Vitrine

Carregando artigos...

Views

Mostrando postagens com marcador Bcc. Mostrar todas as postagens
Mostrando postagens com marcador Bcc. Mostrar todas as postagens

VBA Outlook - Envia uma cópia oculta automaticamente para um e-mail.

Inline image 1



O que é o fenômeno chamado BIG DATA?



Desenvolvermos um código que fique incubado no nosso MS Outlook para garantir que todos os e-mails que forem enviados através dele, automaticamente faça uma cópia deste conteúdo para outro endereço específico pode ser conseguido através da programação VBA.


Se você for menos experiente no uso de automação, talvez esteja se perguntando porque é que iria desejar implementar um código assim no seu MS Outlook.  É verdade que talvez não precise deste código agora, mas certamente o utilizará alguma vez na vida, reflita nas duas situações abaixo:

Digamos que deseje auditar todas as mensagens que estão sendo enviadas através do seu MS Outlook, recebendo uma cópia de qualquer mensagem que enviarem. Como fazer isso?

Quem sabe, queira guardar em uma conta de e-mail externa, o conteúdo de todos os e-mails enviados diariamente da sua máquina, através do MS Outlook, para garantir que nada se perca caso hajam problemas com o seu servidor local de e-mails, como fazer isso?


Private Sub Application_ItemSend (ByVal Item As Object, _
                                 Cancel As Boolean)
    '        Author: André Luiz Bernardes - bernardess@gmail.com
    '          Date: 05/08/13 - 16:03
    '   Application: OutlookFunctionalities®
    ' Functionality: Envia uma cópia oculta automaticamente para um e-mail.
    
    Dim objRecip As Recipient
    Dim strMsg As String
    Dim res As Integer
    Dim strBcc As String
    On Error Resume Next
    
    Let strBcc = "bernardess@gmail.com"

    Set objRecip = Item.Recipients.Add(strBcc)
    
    Let objRecip.Type = olBCC
    
    If Not objRecip.Resolve Then
        Let strMsg = "O Outlook não consegue enviar a mensagem para este endereço de e-mail BCC. " & _
                 "Deseja continuar enviando a mensagem?"
        Let res = MsgBox(strMsg, vbYesNo + vbDefaultButton1, _
                "Não consigo decifrar este endereço Bcc")
        
        If res = vbNo Then
            Let Cancel = True
        End If
    End If

    Set objRecip = Nothing
End Sub


brazilsalesforceeffectiveness@gmail.com

✔ Brazil SFE®Author´s Profile  Google+   Author´s Professional Profile   Pinterest   Author´s Tweets

VBA Outlook - Envie todas as suas mensagens por e-mails como Bcc, automaticamente.

Inline image 2

O MS Outlook tem uma regra quando enviamos mensagens para outra pessoa como Cc, mas não há nada equivalente para mensagens enviadas como BCC (ou CCo, Oculta).

Utilizaremos o evento Application.ItemSend, que será acionado quando um usuário for enviar uma mensagem.

A versão ideal para se fazer isso é a partir do MS Outlook 2003. Ela usa objetos exclusivamente Outlook e inclui manipulação de erro para evitar problemas com um endereço inválido Bcc.

Ela usa objetos exclusivamente MS Outlook e inclui manipulação de erro para evitar problemas com um endereço inválido Bcc

Coloque esse código VBA no módulo interno de ThisOutlookSession:


1ª Versão:

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

    strBcc = "bernardess@gmail.com"

    Set objRecip = Item.Recipients.Add(strBcc)
    objRecip.Type = olBCC

    If Not objRecip.Resolve Then
        strMsg = "Não posso enviar esta mensagem oculta. " & _
                 "Deseja continuar enviando a mensagem?"

        res = MsgBox(strMsg, vbYesNo + vbDefaultButton1, _
                "Não posso enviar esta mensagem oculta.")

        If res = vbNo Then
            Cancel = True
        End If
    End If

    Set objRecip = Nothing
End Sub

A razão pela qual este método não é adequado para as versões anteriores do MS Outlook 2003 é porque ele dispara um alerta de segurança devido ao uso do Recipients.Add

Você pode evitar avisos de segurança, simplesmente definindo a propriedade Item.Bcc para o endereço desejado, mas terá dois problemas. Primeiro, iria retirar os destinatários Bcc que o usuário já tivesse adicionado. Além disso, em algumas configurações do MS Outlook, mesmo se você usar um endereço SMTP apropriado, obteria um erro, e o  MS Outlook  não enviaria a mensagem.


2ª Versão:

Esta versão utiliza a mesma técnica básica da 1ª, apenas adiciona a biblioteca de terceiros Outlook Redemption para evitar avisos de segurança das versões anteriores ao MS Outlook 2003 e, caso o beneficiário não possa ser resolvido, para mostrar ao usuário uma caixa de diálogo de resolução dos nomes.

Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
    ' Requires a reference to
    ' the SafeOutlook library (Redemption.dll)

    Dim objMe As Redemption.SafeRecipient
    Dim sMail As Redemption.SafeMailItem

    On Error Resume Next
    
    Set sMail = CreateObject("Redemption.SafeMailItem")

    Item.Save

    sMail.Item = Item
    Set objMe = sMail.Recipients.Add ("bernardess@gmail.com")
    objMe.Type = olBCC

    If Not objMe.Resolve(True) Then
        Cancel = True
    End If
    
    Set objMe = Nothing
    Set sMail = Nothing
End Sub

Reference:
TagsVBA, Outlook, Outlook 2003, send, message, mensagem, Bcc, ThisOutlookSession, automation

VBA Outlook: Reencaminhar mensagens enviadas como ocultas.


Controle o fluxo de informações ocultas da sua máquina, rede, departamento, etc... Esta pequena funcionalidade permite que acompanhe o que vem trafegando na sua rede.

A funcionalidade abaixo é apenas um exercício de como manipular as mensagens dentro do MS Office Outlook.


Private Sub Application_ISend (ByVal Item As Object, Cancel As Boolean)
    ' Author:                            Date:                       Contact:
    ' André Bernardes             02/05/2009 09:15    bernardess@gmail.com
    ' Reencaminhar mensagens enviadas para outro destinatário através do campo Bcc
 
    Dim objMe As Recipient

    Set objMe = Item.Recipients.Add("bernardess@gmail.com")

    Let objMe.Type = olBCC
    objMe.Resolve

    Set objMe = Nothing
End Sub

Tags: Bernardes, VBA, Office, send, Bcc, oculto, e-Mail


André Luiz Bernardes
A&A® - Work smart, not hard.

VBA Outlook 2003 - Envie todas as suas mensagens por e-mails como Bcc, automaticamente.


O MS Outlook tem uma regra quando enviamos mensagens para outra pessoa como 'Cc', mas não tem nada equivalente para mensagens enviadas como 'BCC' (ou CCo, Oculta). Utilizaremos o evento Application.ItemSend, que é acionado sempre que um usuário envia uma mensagem.

Esta versão é ideal para o Outlook 2003 ou posterior. Ela usa objetos exclusivamente Outlook e inclui manipulação de erro para evitar problemas com um endereço inválido Bcc.

Ela usa objetos exclusivamente Outlook e inclui manipulação de erro para evitar problemas com um endereço inválido Bcc. 

Coloque esse código VBA no módulo interno de ThisOutlookSession:


1ª Versão:

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

    strBcc = "bernardess@gmail.com"

    Set objRecip = Item.Recipients.Add(strBcc)
    objRecip.Type = olBCC

    If Not objRecip.Resolve Then
        strMsg = "Não posso enviar esta mensagem oculta. " & _
                 "Deseja continuar enviando a mensagem?"

        res = MsgBox(strMsg, vbYesNo + vbDefaultButton1, _
                "Não posso enviar esta mensagem oculta.")

        If res = vbNo Then
            Cancel = True
        End If
    End If

    Set objRecip = Nothing
End Sub

A razão pela qual este método não é adequado para as versões anteriores do Outlook 2003 é porque ele dispara um alerta de segurança devido ao uso do Recipients.Add

Você pode evitar avisos de segurança, simplesmente definindo a propriedade Item.Bcc para o endereço desejado, mas terá dois problemas. Primeiro, iria retirar os destinatários Bcc que o usuário já tivesse adicionado. Além disso, em algumas configurações do Outlook, mesmo se você usar um endereço SMTP apropriado, obteria um erro, e o Outlook não enviaria a mensagem.


2ª Versão:

Esta versão utiliza a mesma técnica básica da 1ª versão, apenas adiciona a biblioteca de terceiros Outlook Redemption para evitar avisos de segurança das versões anteriores ao Outlook 2003 e, caso o beneficiário não possa ser resolvido, para mostrar ao usuário uma caixa de diálogo de resolução dos nomes.


Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
    ' Requires a reference to
    ' the SafeOutlook library (Redemption.dll)

    Dim objMe As Redemption.SafeRecipient
    Dim sMail As Redemption.SafeMailItem

    On Error Resume Next
    
    Set sMail = CreateObject("Redemption.SafeMailItem")

    Item.Save

    sMail.Item = Item
    Set objMe = sMail.Recipients.Add ("bernardess@gmail.com")
    objMe.Type = olBCC

    If Not objMe.Resolve(True) Then
        Cancel = True
    End If
    
    Set objMe = Nothing
    Set sMail = Nothing
End Sub

Fonte: OutlookCode



Veja também:



Tags: Outlook 2003, send, message, mensagem, Bcc, ThisOutlookSession


André Luiz Bernardes
A&A® - Work smart, not hard.

diHITT - Notícias