我使用带有Access VBA的Outlook 2010发送电子邮件。
我从Microsoft Outlook收到有关程序尝试发送电子邮件的警告,我被迫按下允许。
我从VBA中获得了Microsoft Outlook对象库14。
在Outlook中-选项-通过programin访问已标记为不显示警告。
我在regedit中添加了下一个条目
Key: HKEY_CURRENT_USER\Software\Policies\Microsoft\Office\
<version>\Outlook\Security
Value name: AdminSecurityMode
Value type: REG_DWORD
Value: 3
Key: HKEY_CURRENT_USER\Software\Policies\Microsoft\Office\
<version>\Outlook\Security
Value name: PromptOOMSend
Value name: PromptOOMAddressBookAccess
Value name: PromptOOMAddressInformationAccess
Value name: PromptOOMMeetingTaskRequestResponse
Value name: PromptOOMSaveAs
Value name: PromptOOMFormulaAccess
Value name: PromptSimpleMAPISend
Value name: PromptSimpleMAPINameResolve
Value name: PromptSimpleMAPIOpenMessage
Value type: REG_DWORD
Value: 2
我还在电子邮件功能中添加了DoCmd.SetWarnings False。
如何禁用此警告?
解决此问题的常用方法是安装并使用Outlook Redemption 。
另一种方法是完全绕过Outlook并通过SMTP发送,但这是另一回事,需要更多代码。
您在Outlook中收到标准的安全提示。
有几种抑制此类提示的方法:
使用第三方组件来抑制Outlook安全警告。有关更多信息,请参见Security Manager for Microsoft Outlook。
使用低级API代替OOM。或该API周围的任何其他第三方包装,例如,赎回。
开发有权访问受信任的Application对象的COM加载项。
使用组策略对象设置计算机。
出现警告,提示您使用DoCmd.sendObject发送电子邮件,因此不要下载第三方组件。
我只是不使用doCmd.sendObjects而使用了这样的函数:
Public Function CreateNewMessage()
Dim objMsg As MailItem
Set objMsg = Application.CreateItem(olMailItem)
With objMsg
.To = "[email protected]"
.CC= "[email protected]"
.BCC = "[email protected]"
.Subject = "This is the subject"
.Categories = "Test"
.VotingOptions = "Yes;No;Maybe;"
.BodyFormat = olFormatPlain ' send plain text message
.Importance = olImportanceHigh
.Sensitivity = olConfidential
.Attachments.Add ("path-to-file.docx")
' Calculate a date using DateAdd or enter an explicit date
.ExpiryTime = DateAdd("m", 6, Now) '6 months from now
.DeferredDeliveryTime = #8/1/2012 6:00:00 PM#
.Display
End With
Set objMsg = Nothing
End Function
非常感谢