VBA/VBS Outlook alapértelmezett fiók neve

VBA/VBS Outlook alapértelmezett fiók neve
2020-10-21T19:59:48+02:00
2020-10-22T17:48:51+02:00
2022-10-15T21:26:27+02:00
Ethon
Sziasztok!

Az lenne a kérdésem, hogy ha az Outlook profilban több fiók üzemel, akkor le lehet kérdezni, hogy melyik fiók, vagy SMTPaddress van kijelölve alapértelmezettként?

Pl. VBS-ben az alapértelmezett adatfájl neve így lekérhető:

   Set olApp = CreateObject("Outlook.Application")
   Set myNameSpace  = olApp.GetNamespace("MAPI")
   Wscript.Echo myNameSpace.Accounts.Session.DefaultStore.DisplayName

Valami hasonló módszer létezik az alapértelmezett fiókra is? Vagy az is megoldás lenne, ha a regisztrációs adatbázisból lehetne kiolvasni az ominózus nevet.

Előre is köszönöm a segítséget.
Mutasd a teljes hozzászólást!
No, közben úgy tűnik, jutottam valamire...

Ha Exchange alapon használjuk az Outlook-ot, akkor az alábbi útmutató szerint kereshetünk rá a Reg. adatbázisban az elsődleges, vagy másképpen az alapértelmezett fiókra:
Get primary Exchange account mail address from registry

Tehát a HKCU-ban megadott elérési úton rákeresve a '001f6641' és/vagy '001e660b' értékek nevére, a 'REG_BINARY' típusú értékekben Hexa formában rátalálhatunk 'SMTP:...'-vel kezdődően a default fiókok E-mail címeire, vagy egy bizonyos más jellegű érték esetén abból egy LDAP lekérdezést legyártva kapjuk meg a keresett E-mail címet.

Ám ezek az értéknevek nem találhatóak meg a reg.bázisban, ha az Outlook-ban csak IMAP/POP3 fiókok vannak, de végül is ez sem baj, mivel rájöttem arra, amire már rég felfigyelhettem volna.

Ezzel a VBS kóddal ugye lekérdezhetőek az adott profilban szereplő fiókok:

Dim defaultSMTPaddr
userIDserNum = 0
For Each oAccount In olApp.Session.Accounts
     userIDserNum = userIDserNum + 1
     if userIDserNum = 1 then defaultSMTPaddr 'alapértelmezett fiók E-mail címe
     Wscript.Echo oAccount.DisplayName
next

Kiderült, hogy mindig az lesz a felsorolásban az első fiók, amelyik egyúttal az alapértelmezett. Magyarán ez is rögvest visszaadja az alapértelmezett fiókot:

olApp.Session.Accounts.Item(1).SmtpAddress

Az 1. mindig az alapértelmezett lesz, akárhány fiók is van a profilban, és akármelyik pozícióban is van a profilban. :)
Mutasd a teljes hozzászólást!

Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd