0

我在这里查看另一个问题的代码片段(MS Access VBA):https ://stackoverflow.com/a/17975507/1085885

现在,此代码仅在我在 Outlook 打开时运行它时才有效。此代码有什么方法可以“打开 Outlook”然后运行所有发送代码?

其次,如何选择从哪个 Outlook 配置文件发送?我可以访问几个不同的配置文件,它是从我的主要收件箱发送的,但我希望它来自我的第二个收件箱。

4

2 回答 2

0

您需要登录到指定的配置文件。创建 Outlook 应用程序实例后

Set oApp = CreateObject("Outlook.application")

添加如下内容:

set oNS = oApp.GetNamespace.Logon
oNS.Logon("MyProfileName")

请注意,如果 Outlook 已经在运行,Logon 将不执行任何操作。您将需要使用扩展 MAPI(C++ 或 Delphi 或像Redemption ( RDOSession .Logon) 之类的 MAPI 包装器)来登录到指定的配置文件。

为什么不使用单个配置文件并创建多个帐户?然后,您可以设置MailItem.SendUsaingAccount属性以指定特定帐户。

于 2013-07-31T17:00:05.657 回答
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
于 2018-02-02T17:27:18.317 回答