Disable outlook security settings using VBA

16,153

You get the error because OlSecurityManager is nothing. You haven't declared it, you haven't set it to anything, so when you attempt to use it, VBA has no idea what you're talking about!

It looks like you're trying to use Outlook Security Manager, which is an add-in sold here. Have you purchased it? Because if not, then you probably don't have it on your system.

If you do have it, then you probably need to declare and set it like this:

Dim OlSecurityManager As AddinExpress.Outlook.SecurityManager
Set OlSecurityManager = New AddinExpress.Outlook.SecurityManager

If you, as I suspect, don't have it, then an alternative is sending e-mail using CDO. Here's an example:

First, set a reference to the CDO library in Tools > References > checkmark next to Microsoft CDO for Windows Library or something like that.

Dim cdoConfig
Dim msgOne

Set cdoConfig = CreateObject("CDO.Configuration")
With cdoConfig.Fields
    .Item(cdoSendUsingMethod) = cdoSendUsingPort
    .Item(cdoSMTPServerPort) = 25 'your port number, usually is 25
    .Item(cdoSMTPServer) = "yourSMTPserver.com" 
    '.Item(cdoSendUserName) = "your username if required"
    '.Item(cdoSendPassword) = "your password if required"
    .Update
End With

Set msgOne = CreateObject("CDO.Message")
With msgOne
    Set .Configuration = cdoConfig
    .To = "[email protected]"
    .from = "[email protected]"
    .subject = "Testing CDO"
    .TextBody = "It works just fine."
    .Attachments.Add "C:\myfile.pdf"
    .Send
End With

This is a bit more annoying than Outlook, because you need to know in advance the address of the SMTP server to be used.

Share:
16,153
guest1
Author by

guest1

Updated on June 04, 2022

Comments

  • guest1
    guest1 almost 2 years

    I am trying to auto email a report from access using VBA in a macro. The report is sent from Access2007 by outlook2007. When the report is being sent, I get a security message from outlook saying "a program is trying to access your Address book or Contacts" or "a program is trying to access e-mail addresses you have stored in Outlook..." . This message is a problematic for me because I want to use windows task scheduler to automatically send the report without any human interaction.So I want to disable this security notification. I searched on Google and here is the code I have so far but giving me errors and I am not sure what else I should do. Thanks for your help in advance. I am a beginner programmer. The error is

    Public Sub Send_Report()
    Dim strRecipient As String
    Dim strSubject As String
    Dim strMessageBody As String
    Dim outlookapp As Outlook.Application
    
    Set outlookapp = CreateObject("Outlook.Application")
    
    OlSecurityManager.ConnectTo outlookapp   'error is here says object required
    
    OlSecurityManager.DisableOOMWarnings = True
    On Error GoTo Finally
    
    strRecipient = "[email protected]"
    strSubject = "Tile of report"
    strMessageBody = "Here is the message."
    
    DoCmd.SendObject acSendReport, "Report_Name", acFormatPDF, strRecipient, , ,        strSubject, strMessageBody, False
    
    Finally:
    OlSecurityManager.DisableOOMWarnings = False
    
    
    End Sub