-->

运行时错误287 Access 2003中使用VBA发送邮件时(runtime error 287

2019-10-17 06:34发布

我目前正在写VBA宏来发送电子邮件和创建的消息,但是当产生一个错误不发送。 我当前的代码是:

Function CreateHURMail(Filename)

Dim olApp As Outlook.Application
Dim objMail As Outlook.MailItem
Set olApp = New Outlook.Application
Set objMail = olApp.CreateItem(olMailItem)

With objMail
    .Subject = "Test Message"
    .Body = "Body Text"
    .To = "abc@xyz"
    .Attachments.Add (Filename)
    .Display

    On Error Resume Next
    .Send

    'If Err.Number = 287 Then
    '    MsgBox "Still doesn't work!", vbOKOnly, "DOH!"
    'End If
End With


End Function

有谁知道如何解决这一问题?

提前致谢。

Answer 1:

在Access中使用DoCmd.SendObject发送电子邮件。 例:

Call DoCmd.SendObject(acSendNoObject, To:="abc@xyz", 
    Subject:="Test Message", MessageText:="Body Text", EditMessage:=true)

在发送无对象的代替,还可以发送表,查询,窗体,报表或表格。 这是不可能的附加一个正常的文件,这样一来。

如果自动化Outlook,并尝试发送邮件,它是由Outlook捕获。 根据Outlook的安全设置,它不允许通过完全自动化发送邮件,它要求使用弹出如果自动化是允许或者它只是发送邮件(小心与后者)的用户。

如果发送邮件被中止或者因为安全不允许通过完全自动化发送邮件或者因为用户点击“否”的确认对话框,错误发生287。

有两种方法来解决它:(完全或让用户确认发送邮件)禁用安全性,或者签署您的MDB文件和Outlook信任它。 后者是相当复杂的,但最安全的。

希望这可以帮助,



Answer 2:

您不妨考虑一下展望赎回 。



文章来源: runtime error 287 when sending mail using vba in access 2003