我正在查看此处另一个问题的代码片段(MS Access VBA):https://stackoverflow.com/a/17975507/1085885
现在,此代码仅在Outlook打开时运行时才有效。这段代码有没有办法“打开Outlook”,然后运行所有发送代码?
其次,如何选择要发送的Outlook配置文件?我可以访问几个不同的配置文件,它从我的主要收件箱发送,但我希望它来自我的第二个收件箱。
答案 0 :(得分:0)
您需要登录指定的个人资料。创建Outlook应用程序的实例后
Set oApp = CreateObject("Outlook.application")
添加如下内容:
set oNS = oApp.GetNamespace.Logon
oNS.Logon("MyProfileName")
请注意,如果Outlook已在运行,则Logon将不执行任何操作。您将需要使用扩展MAPI(C ++或Delphi或MAPI包装器,如Redemption(RDOSession。登录)来登录到指定的配置文件。
为什么不使用单个配置文件并创建多个accpunts?然后,您可以设置MailItem.SendUsaingAccount
属性以指定特定帐户。
答案 1 :(得分:0)
以这种方式试试。
Private Sub Command1_Click()
Dim bStarted As Boolean
Dim oOutlookApp As Outlook.Application
Dim oItem As Outlook.MailItem
On Error Resume Next
'Get Outlook if it's running
Set oOutlookApp = GetObject(, "Outlook.Application")
If Err <> 0 Then
'Outlook wasn't running, start it from code
Set oOutlookApp = CreateObject("Outlook.Application")
bStarted = True
End If
'Create a new mailitem
Set oItem = oOutlookApp.CreateItem(olMailItem)
With oItem
'Set the recipient for the new email
.To = "receiver@gmail.com"
.Send
End With
If bStarted Then
' 'If we started Outlook from code, then close it
oOutlookApp.Quit
End If
'Clean up
Set oItem = Nothing
Set oOutlookApp = Nothing
End Sub