Hämta ut information från Outlook

C, C++, Pascal, Assembly, Raspberry, Java, Matlab, Python, BASIC, SQL, PHP, etc.
TomasNordström
Inlägg: 1
Blev medlem: 23 mars 2016, 14:05:47

Hämta ut information från Outlook

Inlägg av TomasNordström »

Hej alla smarta människor.

Jag skulle behöva lite hjälp att få reda på var man kan hitta informationen så som telefonnummer, namn, adress i Outlook utan att öppna Outlook.
Det handlar om utrullning av en mjukvara och för att förenkla för användaren när denne startar programmet första gången så tänkte vi försöka hämta uppgifterna från någon fil på datorn där det redan finns.
Vi nyttjar användarnamnet, som man använder när man loggar in, men det räcker liksom inte.

Någon som vet hur man kan extrahera användarinformationen i Outlook för att sedan använda det vårt script (eller .bat-fil).

Tack för hjälpen.
Användarvisningsbild
tecno
Inlägg: 27039
Blev medlem: 6 september 2004, 17:34:45
Skype: tecnobs
Ort: Sparreholm, Södermanland N 59° 4.134', E 16° 49.743'
Kontakt:

Re: Hämta ut information från Outlook

Inlägg av tecno »

Du lär få exportera först till lämpligt format och sen plocka data från den filen.
Nerre
Inlägg: 26706
Blev medlem: 19 maj 2008, 07:51:04
Ort: Upplands väsby

Re: Hämta ut information från Outlook

Inlägg av Nerre »

Det ligger väl egentligen på servern? Möjligen ligger det en kopia i nån fil, då får man väl försöka använda nåt API. Men möjligen är den låst av lösenordet.

När vi migrerades till Office 365 på jobbet var vi tvungna att sätta Outlooklösen till samma som login, sen kördes nåt migration tool när det var dags.
Användarvisningsbild
sodjan
EF Sponsor
Inlägg: 43178
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping
Kontakt:

Re: Hämta ut information från Outlook

Inlägg av sodjan »

> Det ligger väl egentligen på servern?

Det beror ju helt på hur det körs och om man har egna mail servers.

Frågan är också om detta är inom en organisation/företag där man
har full kontroll över sina maskiner. Eller om det är installationer på en
valfri "hemma-PC". I det senare fallet skulle jag nog vara lite tveksam
till att låta tredjeparts rutiner läsa från Outlook filen.

Dessutom kan man nog inte vara säker på att hitta t.ex adress (om det
gäller postadress) i Outlook filen...
Användarvisningsbild
swesysmgr
Inlägg: 14176
Blev medlem: 28 mars 2009, 06:56:43
Ort: Göteborg

Re: Hämta ut information från Outlook

Inlägg av swesysmgr »

TomasNordström skrev:Hej alla smarta människor.

Jag skulle behöva lite hjälp att få reda på var man kan hitta informationen så som telefonnummer, namn, adress i Outlook utan att öppna Outlook.
Det handlar om utrullning av en mjukvara och för att förenkla för användaren när denne startar programmet första gången så tänkte vi försöka hämta uppgifterna från någon fil på datorn där det redan finns.
Vi nyttjar användarnamnet, som man använder när man loggar in, men det räcker liksom inte.

Någon som vet hur man kan extrahera användarinformationen i Outlook för att sedan använda det vårt script (eller .bat-fil).

Tack för hjälpen.
Du borde kunna starta Outlook-klienten med fönstret dolt och sedan rassla igenom adressboken för att exportera kontakterna till ditt CRM-system eller liknande men gör bara detta om du har kontakterna lokalt i en .pst fil och inte på Exchange-servern.

Har ni en server gör allt där och innan ni skapar två parallella kundregister, fundera på om detta verkligen är den smartaste lösningen. Går det verkligen inte att koppla det andra systemet till Exchange för att ha enbart en lista med alla kontakter?

Dina användare borde även förbereda sig genom att sortera jobb-kontakter från privata innan importen sker för att undvika att en massa skräp hamnar i ditt säljstödssystem.

Ledsen om jag krånglar till det men programmeringen är det enkla, att tänka igenom problemet och få programmet att göra rätt saker är det svåra.
cjonash
Inlägg: 613
Blev medlem: 20 maj 2011, 08:53:58
Ort: Göteborg

Re: Hämta ut information från Outlook

Inlägg av cjonash »

Jag gjorde ett program för att kunna skicka personliga sms, till en mängd personer samtidigt. Då ville jag läsa ut namn och telefonnummer från min Outlook-adressbok.
Det går att få ut data via Outlooks API, men Outlook måste då vara startat. Om Outlook inte är startat när man försöker komma åt data, så kommer inloggningsrutan upp. När man loggat in, så kommer man åt all data - och Outlook är inte synligt.

När jag provade samma sak på en dator där Outlook var satt att komma ihåg lösenordet (dvs, jag får inte upp någon inloggningsruta när jag startar Outlook), så kunde mitt program hämta data utan att någon inloggningsruta visade sig.
Jag har visserligen bara provat detta på Outlook 2010, så jag vet inte om det fungerar lika bra på senare versioner.

Så här ser min kod ut (Delphi, men det borde vara lätt att översätta till valfritt språk):

Kod: Markera allt

procedure ImportFromOutlook;
var OutlookObj, ObjSpace, ObjFolder: Variant;
var i: Integer;
begin
  OutlookObj := CreateOleObject('Outlook.Application');
  ObjSpace := OutlookObj.GetNameSpace('MAPI');
  ObjFolder := ObjSpace.GetDefaultFolder(10); 
  // The  value 10 in "GetDefaultFolder" corresponds to the Contacts folder
  // See: https://msdn.microsoft.com/en-us/library/office/ff861868.aspx#

  for i := 1 to ObjFolder.Items.Count do begin
     // Här hämtar du data för respektive record
     //  Förnamn:        ObjFolder.Items[i].FirstName
     //  Hela namnet:   ObjFolder.Items[i].FullName
     //  Unikt ID:          ObjFolder.Items[i].EntryID
     //  Mobilnummer:  ObjFolder.Items[i].MobileTelephoneNumber
  end;
  OutlookObj.Quit;
end;
Och här hittade jag en lista på alla fältnamnen: https://msdn.microsoft.com/en-us/librar ... 20273.aspx
Den är för Office 2013, så det verkar som att koden ovan bör fungera även på nyare versioner än 2010.

Notera att den här metoden bara fungerar om Outlook är installerat och konfigurerat. Vill du läsa data direkt ur en Outlook-fil (.pst), så krävs andra metoder. Det är en binär fil, så jag gissar att det under alla omständigheter kräver betydligt mera kod än om du kan läsa det via ett API.
Här finns den officiella informationen: https://msdn.microsoft.com/en-us/librar ... e.12).aspx
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 45299
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: Hämta ut information från Outlook

Inlägg av TomasL »

Det hela beror ju på om Outlook körs mot en exchange-srver eller inte.
Om man kör mot en exchange server fins data nödvändigtvis inte i den lokala datorn, utan på servern, men det beror på hur outlook är konfigurerat, dvs huruvida det sparas en lokal fil eller inte, om så så är det en fil med ändelsen ost, dvs inte pst.
Dock verkar de använda snarlika format.
cjonash
Inlägg: 613
Blev medlem: 20 maj 2011, 08:53:58
Ort: Göteborg

Re: Hämta ut information från Outlook

Inlägg av cjonash »

Den lösning som jag föreslog fungerar oavsett om det är en lokal fil eller kopplat mot en Exchange server - båda varianterna är testade. I och med att man använder Outlook's API, så är det transparent gentemot dem bakomliggande lagringen.

En sak som däremot kan visa sig vara en utmaning (beroende på hur man vill spara data) är att det i Outloook finns en hel hög med olika fält i en kontakt. Så allt efter hur noga man har varit när man sparat sina kontakter (och från vilken plattform, t.ex synkat via en mobiltelefon) så kan ju den data man vill ha ligga utspritt i olika fält i de olika kontakterna.
johano
Inlägg: 1943
Blev medlem: 22 januari 2008, 10:07:45
Ort: Stockholm

Re: Hämta ut information från Outlook

Inlägg av johano »

Jag tolkade det som att man bara ville läsa ut den egna användarens profiluppgifter, som namn, tel.nr, epost et.c för att underlätta installationen av deras egna program genom förifyllda fält.

Frågan är väl hur man ska veta vilken kontakt i adressboken som är den egna - eller om det ens finns någon?

/j
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 45299
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: Hämta ut information från Outlook

Inlägg av TomasL »

Om det är en fristående installation finns det nog ofta inga uppgifter.
Är det en Exchangebaserad får man hämta detta från AD gissar jag, men det beror ju på hur mycket Adm fyllt i.
johano
Inlägg: 1943
Blev medlem: 22 januari 2008, 10:07:45
Ort: Stockholm

Re: Hämta ut information från Outlook

Inlägg av johano »

Pillade runt lite med detta (det var läääänge sen jag gjorde någon utveckling mot Office :-) ) och
fick följande lilla snutt att iaf. hämta ut den inloggades namn och lite andra properties.

Jag testade mot Outlook 2010 och det funkade att få ut namn + lite egenskaper.
Nu var ju min outlook kopplad mot en ExchangeServer, men det går nog kanske att få ut egenskaper även om AddressEntry inte skulle vara av typen "EX", men det lämnar jag som en övning till TS :-)

Kod: Markera allt

'** spara som "test.vbs" och körs med "cscript test.vbs"
Set app = CreateObject("Outlook.Application")
Set ses = app.GetNamespace("MAPI")

call ses.Logon

WScript.Echo( ses.CurrentUser.Name )

set ae = ses.CurrentUser.AddressEntry

If ae.Type="EX" Then

	set eu = ae.GetExchangeUser()

	'** kolla på https://msdn.microsoft.com/en-us/library/office/ff184601.aspx
	WScript.Echo( eu.PrimarySmtpAddress )
	WScript.Echo( eu.BusinessTelephoneNumber )
	WScript.Echo( eu.MobileTelephoneNumber )

	set eu = Nothing
End If

'** ta bot kommentaren nedan för att poppa upp en dialog med alla egenskaper
' call ae.Details 

set ae = Nothing
Set app = Nothing
Set ses = Nothing
/johan
Användarvisningsbild
sodjan
EF Sponsor
Inlägg: 43178
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping
Kontakt:

Re: Hämta ut information från Outlook

Inlägg av sodjan »

> '** spara som "test.vbs" och körs med "cscript test.vbs"

För mig räcker det med att spara det som en .vbs fil och dubbelklicka på den.

Jag får enbart mitt namn i en ruta. Kör Outlook 365 mot Telia (POP).
Fungerar även utan att ha Outlook startat...
johano
Inlägg: 1943
Blev medlem: 22 januari 2008, 10:07:45
Ort: Stockholm

Re: Hämta ut information från Outlook

Inlägg av johano »

Ja, då är addresstype hos dig _inte_ "EX" utan "något annat" ;-)

/johan
Skriv svar