Outlook VBA .SendUsingAccount, когда учетная запись недоступна

История: В приложении Outlook есть одна учетная запись по умолчанию/пользователя, а также дополнительный почтовый ящик, календарь (назовем его 2nd_Account) и т. д., добавленные (видимые) в виде папок на основе разрешения Exchange Server.

Мне нужно программно создать новый элемент встречи и отправить его от имени 2nd_Account. Проблема в том, что в Application.Session есть только 1 аккаунт (по умолчанию).

Если пользователь делает это вручную, элемент, созданный из папки olCalendar 2nd_Account, будет отправлен от имени 2nd_Account, даже если он не включен в коллекцию Accounts. Есть идеи, пожалуйста?

Спасибо


person Sławomir Mytych    schedule 03.09.2018    source источник


Ответы (2)


Создайте встречу в папке «Календарь» этой учетной записи — используйте Store.GetDefaultFolder вместо Namespace.GetDefaultFolder.

person Dmitry Streblechenko    schedule 03.09.2018
comment
На самом деле решено с циклом по коллекциям папок NameSpace.Folders и назначением нужной папки переменной и использованием Application.CreateItemFromTemplate(strPath, olFolder) - person Sławomir Mytych; 04.09.2018

Вот как я просматриваю установленные учетные записи в Outlook:

Set MAPISession = objOutlook.Application.Session     'Get the MAPI Outlook session
Dim WantedAccount as String ' Set to preferred account name

Set MAPIMailItem = objOutlook.CreateItem(olMailItem)  'Create a new mail message
With MAPIMailItem
  For Each Account In MAPISession.Accounts
    If Account = WantedAccount Then
      .SendUsingAccount = Account
      Exit For
    End If
  Next
person Community    schedule 03.09.2018
comment
Спасибо, но дело в том, что доступна (установлена) только одна учетная запись, в то время как папки (входящие, отправленные, календарь) доступны пользователю на основе разрешений Exchange Server и, следовательно, видны в Outlook. На самом деле решено с циклом по коллекциям папок NameSpace.Folders и назначением нужной папки переменной и использованием Application.CreateItemFromTemplate(strPath, olFolder) - person Sławomir Mytych; 04.09.2018