Outlook VBA .SendUsingAccount เมื่อไม่มีบัญชีที่พร้อมใช้งาน

เรื่องราว: ในแอป Outlook มีบัญชีผู้ใช้เริ่มต้นหนึ่งบัญชี และยังมีกล่องจดหมายเพิ่มเติม ปฏิทิน (เรียกว่า 2nd_Account) ฯลฯ ที่เพิ่ม (มองเห็นได้) เป็นโฟลเดอร์ตามสิทธิ์ของ Exchange Server

ฉันต้องสร้างรายการนัดหมายใหม่ทางโปรแกรมและส่งในนามของ 2nd_Account ปัญหาคือใน Application.Session มีเพียง 1 บัญชีเท่านั้น (บัญชีเริ่มต้น)

หากผู้ใช้ดำเนินการด้วยตนเอง รายการที่สร้างจากโฟลเดอร์ 2nd_Account olCalendar จะเป็น SendOnBehalf ของ 2nd_Account แม้ว่าจะไม่รวมอยู่ในคอลเลกชันบัญชีก็ตาม มีความคิดอะไรบ้างโปรด?

ขอบคุณ


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