使用无MAPI的Access和VBA发送电子邮件

Kno*_*nox 5 email mapi ms-access vba ms-access-2007

我想使用VBA无人值守地从Microsoft Access发送电子邮件.据我所知,内置方法"SendObject"使用MAPI意味着安全提示和Outlook配置之类的东西.由于我想使用任务计划程序启动不同的报告,我倾向于远离MAPI并且更喜欢其他一些解决方案.不是运输申请,而是内部申请.想法?

Kno*_*nox 5

这是使用CDO和gmail为我工作的测试代码.

Sub mtest()

Dim cdoConfig
Dim msgOne

Set cdoConfig = CreateObject("CDO.Configuration")
With cdoConfig.Fields
.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = 465
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.gmail.com"
.Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "gmailname"
.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "yourpw"

.Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True
.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1

.Update
End With

Set msgOne = CreateObject("CDO.Message")
Set msgOne.Configuration = cdoConfig
msgOne.To = "target@target.com"
msgOne.From = "I@dontThinkThisIsUsed.com"
msgOne.Subject = "Test email"
msgOne.TextBody = "It works just fine"
msgOne.send
End Sub
Run Code Online (Sandbox Code Playgroud)


Jef*_*ffO 1

您需要一个 SMTP 服务器来发送电子邮件。那么你需要使用CDO消息对象。