Eu já vi variações desta questão antes, mas não consigo encontrar nenhuma agora, então pensei em perguntar e responder.
Eu escrevi este VBa para resolver o problema! Agora, quando clico em enviar, se não estiver enviando uma conta específica, ele procurará pelo "enviar para a lista" e solicitará que eu cancele ou continue. Isto significa que é maravilhosamente não invasivo! Se eu clicar em cancelar (não enviar), o email permanecerá aberto e inalterado.
Abra a faixa do desenvolvedor, abra o Visual Basic. Abra o 'ThisOutlookSession' e cole o seguinte código
Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
Dim oMail As MailItem
Set oMail = Item
Dim shouldSend As Boolean
shouldSend = ShouldSendEmailFromBusinessAccount(oMail)
If Not (shouldSend) Then
MSG1 = MsgBox("Are you sure you want to send this from the account you're using?", vbYesNo, "Are you sure?")
End If
If MSG1 = vbNo Then
Cancel = True
End If
'Cancel = True
End Sub
Private Function ShouldSendEmailFromBusinessAccount(ByVal oMail As MailItem) As Boolean
ShouldSendEmail = True
'Set the recipients domains/email addresses you want to check.
Dim sendToEmails(0 To 2) As String
sendToEmails(0) = "@domain.co.uk" ' block a domain by TLD
sendToEmails(1) = "domiain2" ' block an entire domain
sendToEmails(2) = "[email protected]" ' block a person
'The only account you want to send emails to
Dim theAccountsToSendEmailsFrom(0 To 0) As String
theAccountsToSendEmailsFrom(0) = "[email protected]"
Dim recCount As Integer
Dim myRec As Outlook.Recipient
Dim mySender As String
mySender = oMail.SendUsingAccount
For a = 0 To UBound(theAccountsToSendEmailsFrom)
theAccountToSendEmailsFrom = theAccountsToSendEmailsFrom(a) ' note, one is plural
If (InStr(mySender, theAccountToSendEmailsFrom) = 0) Then
recCount = oMail.Recipients.Count
For i = 1 To recCount
Set myRec = oMail.Recipients(i)
myAddress = myRec.Address
For j = 0 To UBound(sendToEmails)
If (InStr(LCase(myAddress), LCase(sendToEmails(j)))) Then
MsgBox ("Ooops, you are going to send to: " & sendToEmails(j) & " from " & mySender)
ShouldSendEmail = False
Exit For
End If
Next
Next
End If
Next
ShouldSendEmailFromBusinessAccount = ShouldSendEmail
End Function
Como só desejo enviar para os domínios da minha conta de trabalho, se eu tentar enviar de qualquer outro, recebo:
Caso contrário, ele será enviado normalmente.
O código acima irá verificar todos os endereços de e-mail enviados! Isto significa que irá verificar o para, CC e BCC ... Assim que encontrar um único destinatário correspondente, ele mostrará o prompt perguntando se você deseja enviar ou não.