Sammanfattning
För att garantera konsekvent användning av anpassade egenskaper eller fält begränsar Microsoft Office Outlook 2003 Service Pack 2 (SP2) och senare versioner av Outlook några av de sätt som anpassade egenskaper kan introduceras i Outlook-datakällor. Anpassade egenskaper kan till exempel införas på vissa sätt i personliga Outlook-mappfiler (.pst).
Introduktion
Den här artikeln gör följande:
-
Ger en översikt över anpassade egenskaper.
-
Förklarar hur beteendet för anpassade egenskaper har ändrats i Outlook 2003 SP2 och i senare versioner av Outlook.
-
Här beskrivs några metodtips för att skapa nya egenskaper och några metoder som vi inte rekommenderar.
Mer information
Om anpassade egenskaper
Anpassade egenskaper används av e-postprogram, till exempel Outlook, för att lägga till mer information i ett meddelande. Vanligtvis används den här ytterligare informationen av ett e-postprogram för ett visst ändamål. Det finns dock andra sätt som anpassade egenskaper kan användas på. Till exempel kan anpassade egenskaper läggas till i meddelanden eller objekt om du använder anpassade Outlook-formulär och de formulären innehåller anpassade fält. Anpassade egenskaper används ofta för att lägga till mer information i spårningssyfte. Anpassade egenskaper används också för att lägga till data som en användare inte behöver se. En anpassad lösning kan också lägga till anpassade egenskaper för vanliga objekt. En anpassad lösning lägger programmässigt till anpassade egenskaper i ett meddelande eller objekt utan att ett anpassat formulär krävs.
Anpassade egenskaper kan bevaras i MSG-filformatet och .oft-filformatet i Outlook. Dessutom kan anpassade egenskaper bevaras för e-postmeddelanden som skickas via Internet om avsändaren använder alternativet Skicka med Outlook RTF-format . Med det här alternativet kapslar du in MAPI-delen av meddelandet i TNEF-format (Transport Neutral Encapsulation Format) och sedan avkodas TNEF när meddelandet tas emot.
En avsändare kan skicka ett e-postmeddelande med anpassade egenskaper i följande scenarier:
-
Ett enstaka anpassat formulär skickas. I enstaka formulär bäddas formuläret in i meddelandet. Formuläret publiceras inte någon annanstans. Mer information om engångsformulär finns i följande artikel:
-
Ett publicerat anpassat formulär skickas. I det här fallet skickas inte det anpassade formuläret eftersom formuläret inte är inbäddat i meddelandet. Alla anpassade egenskaper som har använts i formuläret inkluderas dock fortfarande i meddelandet.
Obs! Det finns många sätt att referera till anpassade egenskaper, beroende på i vilket sammanhang de anpassade egenskaperna används. I Outlook-användargränssnittet, till exempel i Fältväljaren, kallas anpassade egenskaper för användardefinierade fält eller anpassade fält. I Outlook-objektbiblioteket kan anpassade egenskaper kallas användaregenskaper eller som användardefinierade egenskaper efter samlingen UserProperties. I MAPI kallas anpassade fält för namngivna egenskaper. MAPI tillhandahåller en möjlighet att göra följande:
-
Tilldela namn till egenskaper
-
Mappa namnen till unika identifierare
-
Göra mappningen beständig
Mer information om hur namngivna egenskaper implementeras i MAPI finns på följande MSDN-webbplats:
http://msdn2.microsoft.com/en-us/library/ms529055.aspx Obs! I en Exchange-miljö refererar termen "lagring" som används i den här artikeln till ett helt postlådearkiv (databas). Termen refererar inte till en enskild användares postlådearkiv. Det kan finnas en eller flera Exchange-postlådedatabaser i en organisation.
Beteendeändringar i Outlook
Implementeringen av MAPI i Outlook har ändrats för att styra hur anpassade egenskaper kan skapas. För att garantera konsekvent användning av anpassade egenskaper måste anpassade egenskaper redan användas i organisationen eller i Outlook-klienten. Så snart anpassade egenskaper används eller registreras kan de anpassade egenskaperna fritt överföras till andra Outlook-klienter eller till servrar som kör Exchange Server. Anpassade egenskaper kan också skickas via Internet.
E-postmeddelanden skickas vanligtvis i MIME-format via Internet. När Outlook tar emot ett Internet-e-postmeddelande konverteras meddelandet till en MAPI-representation. Följande är exempel på internetprotokoll för e-post:
-
POP
-
IMAP
-
HTTP (Outlook.com)
Som standard aktiverar Outlook inte längre Internet-e-post för att skapa nya anpassade egenskaper. Endast egenskaper som redan har skapats i standardarkivet för e-postleverans bevaras för inkommande e-postmeddelanden. Den här ändringen påverkar oftast meddelanden som skickas i encapsulated TNEF (Winmail.dat), där avsändaren har använt alternativet Skicka med Outlook RTF-format . Internetmeddelanden som innehåller egenskaper för X-meddelandehuvud påverkas dock också.
Obs! Meddelanden som innehåller anpassade egenskaper som skickas i en Exchange-organisation påverkas inte av dessa ändringar.
Anpassade egenskaper kan också sparas i MSG-filer och i .oft-filer. Om en användare öppnar en MSG-fil med anpassade egenskaper sparas inte de anpassade egenskaperna i standardarkivet när meddelandet sparas, vidarebefordras och så vidare. Vanligtvis används .oft-filer för att säkerhetskopiera anpassade Outlook-formulär. Med .oft-filer gäller det nya beteendet för alla typer av objekt. Det anpassade formuläret öppnas inte. I stället visas meddelandet i standardformuläret för just den objekttypen.
Sammanfattningsvis kan den här designändringen orsaka två saker:
-
Outlook ignorerar icke-befintliga anpassade egenskaper. Om det inte finns någon anpassad egenskap i leveransarkivet skapas inte egenskapen och dess värde går förlorat. Om den anpassade egenskapen redan finns i leveransarkivet bevaras dess värde. Den här ändringen gäller för följande:
-
Internet-e-postmeddelanden som har TNEF och deras inbäddade meddelanden.
-
S/MIME-meddelanden.
-
MSG-filer när du släpper MSG-filen i ett Outlook-objektfönster för att lägga till filen i ett annat objekt. Den här ändringen gäller även MSG-filer när du släpper MSG-filen i huvudfönstret i Outlook för att lägga till filen i en mapp eller i Microsoft Word-fönstret när du använder Word som e-postredigerare.
-
MSG-filer som en användare dubbelklickar på eller högerklickar för att öppna.
-
-
Outlook ignorerar definitionen av engångsformuläret. Om ett engångsformulär anger en anpassad egenskap och den anpassade egenskapen inte finns i leveransarkivet återges inte engångsformuläret. I stället ser användaren standardformuläret för just den objekttypen. Den här ändringen gäller för Internet-e-postmeddelanden som innehåller en definition av engångsformulär som är inkapslad i TNEF. Den här ändringen gäller även FÖR OFT-filer som en användare dubbelklickar på eller högerklickar för att öppna.
Metodtips och andra sätt att skapa nya egenskaper
Det finns en mängd olika sätt som du kan utforma och utveckla anpassade lösningar på. Vissa av dessa metoder anses vara metodtips. Andra metoder kan också fungera, men vi rekommenderar inte dessa metoder av en eller flera skäl.
Metodtips: Lägga till anpassade fält programmässigt
Olika API:er kan användas för att programmässigt lägga till anpassade fält i objekt. Det gör du med metoden UserProperties.Add i Outlook-objektbiblioteket ("Outlook.Application"). Följande kod illustrerar detta metodtips.
Set myProp = myItem.UserProperties.Add("MyPropName", olText)
Du kan också använda CDO-objektbiblioteket ("MAPI. Session") för att lägga till anpassade fält. Mer information finns på följande MSDN-webbplats:
http://msdn2.microsoft.com/en-us/library/ms527518.aspx För C++-utvecklare kan Extended MAPI användas för att lägga till namngivna egenskaper. Mer information finns på följande MSDN-webbplats:
Metodtips: Använda publicerade anpassade formulär som innehåller anpassade fält
Outlook litar till stor del på publicerade anpassade formulär. Outlook litar dock inte på opublicerade formulär eller engångsformulär. Detta omfattar .oft-filer. När du utformar en anpassad formulärlösning rekommenderar vi därför starkt att du publicerar det anpassade formuläret. Du bör utforma formuläret så att det inte blir ett engångsformulär. Så länge ett formulär publiceras påverkas inte formuläret av ändringen i Outlook.
När du publicerar en .oft-fil i ett annat arkiv kan du skapa egenskaper i det arkivet i standardarkivet. När du skapar ett anpassat formulär som har anpassade egenskaper och publicerar det i lämpligt formulärbibliotek eller -mapp skapas dessutom de anpassade egenskaperna i de berörda butikerna.
Metodtips: Distribuera anpassade formulär programmässigt
Om du utvecklar ett anpassat Outlook-formulär som kommer att användas av andra finns det få metoder som du kan använda. Vilken metod du använder beror på flera faktorer. Dessa faktorer omfattar typen av formulär, vem som ska använda formuläret, var formuläret ska användas och så vidare. Om ett anpassat formulär vanligtvis används av många personer rekommenderar vi att du publicerar formuläret i organisationsformulärbiblioteket. Men om det inte är möjligt kanske du vill publicera formuläret i en delad mapp eller i personliga formulärbibliotek för vissa användare. Du kan programmässigt installera ett anpassat formulär med metoden CreateItemFromTemplate i Outlook-objektbiblioteket. Du använder metoden CreateItemFromTemplate för att öppna en .oft-fil och sedan publicera formuläret med metoden PublishForm. I det här fallet påverkas inte en .oft-fil av de anpassade egenskaperna.
Rekommenderas inte: Distribuera eller skicka .oft-filer så att användare kan öppna
Du kan spara anpassade Outlook-formulär som .oft-filer. Dessa formulär kan innehålla anpassade fält, användargränssnittsändringar och anpassad VBScript-kod (Microsoft Visual Basic Scripting Edition) för att lägga till funktionalitet i formuläret. Även om Outlook redan innehåller funktioner som hindrar VBScript-koden i .oft-filer från att köras, begränsar Outlook nu även användningen av .oft-filer. Om en .oft-fil innehåller anpassade egenskaper och användaren inte tidigare har använt de anpassade egenskaperna finns de anpassade egenskaperna inte i användarens standardlager. Outlook återger inte det anpassade formuläret när användaren dubbelklickar på filen. Om du däremot vill att Outlook ska öppna ett anpassat formulär som lagras som en .oft-fil klickar du på Arkiv, klickar på Nytt och sedan på Välj formulär. Du kan sedan ändra platsen till Användarmallar i filsystem och sedan klicka på Bläddra för att öppna .oft-filen. Formuläret öppnas och du kan spara anpassade egenskaper i standardarkivet.
Rekommenderas inte: Använd registernyckeln AllowNamedProps
Vissa organisationer kan ha giltiga orsaker till att vissa anpassade egenskaper är tillgängliga i hela organisationen. Om flera butiker används kanske du vill se till att en uppsättning anpassade egenskaper kan läggas till i alla butiker. Därför har Outlook 2003 SP2 och senare versioner stöd för registernycklar på klientsidan som anger vilka anpassade egenskaper som kan skapas. För att ange vilka anpassade egenskaper som ska aktiveras definieras anpassade egenskaper under följande registernyckel: HKEY_CURRENT_USER\Software\Microsoft\Office\<version>\Outlook\AllowedNamedProps\
Obs! I den här registernyckeln är <version> en platshållare för den version av Outlook som du använder. För Outlook 2003 är versionsnumret 11.0. För Outlook 2007 är versionsnumret 12.0. Versionsnumret ökar i senare versioner av Outlook.
Den övergripande registernyckelstrukturen för en post i registret är:
<GUID ->
<egenskapsnamn>
"Kind" (dword)
"ID" (dword)
"Typ" (dword) Följande platshållare används i registernyckelstrukturen:
-
<GUID ->: Innehåller det GUID som anger egenskapsuppsättningen. Anpassade Fält eller egenskaper i Outlook som du använder i ett anpassat Outlook-formulär har alla GUID {00020329-0000-0000-C000-0000000000046}. I MAPI kallas GUID för PS_PULIC_STRINGS. Anpassade MAPI-program kan dock ha egna GUID för anpassade egenskaper.
-
<egenskapsnamn>: Anger namnet på egenskapen. Om egenskapen namnges med en sträng är <egenskapsnamn> själva strängnamnet för egenskapen. Om egenskapen namnges med ett ID ignoreras värdet för den här registernyckeln. Du måste dock ge egenskapen ett unikt namn så att egenskapen kan lagras i registret. Om Kind-nyckeln är inställd på 1 eller är <> 0 bestämmer registernyckelns namn namnet på egenskapen. Om Kind-nyckeln inte är lika med 1 ignoreras registernyckelns namn.
-
"Typ" (dword): Anger om egenskapen namnges med ett ID eller av en sträng. Om värdet är 0 namnges egenskapen med ett ID. Namnet är ett numeriskt värde som anges av ett ID. Om värdet är 1 namnges egenskapen med en sträng. Den här inställningen är standardinställningen när "Typ" inte finns.
-
"ID" (dword): Innehåller ID-namnet på en egenskap som namnges av ett ID. Den här informationen krävs om Kind-nyckeln är inställd på 0. Om Kind-tangenten är inställd på 1 ignoreras den här informationen.
-
"Typ" (dword): Anger typ av egenskap.
Den här registernyckeln är obligatorisk, men registernyckeln används för närvarande inte. I följande tabell visas möjliga värden för den här registernyckeln baserat på MAPI-typen.
MAPI-typ |
Värde |
Beskrivning |
---|---|---|
PT_UNSPECIFIED |
0 |
Reserverad för gränssnittsanvändning (typ är inte viktigt för uppringaren) |
PT_NULL |
1 |
Null-egenskapsvärde |
PT_I2 |
2 |
Signerat 16-bitarsvärde |
PT_LONG |
3 |
Signerat 32-bitarsvärde |
PT_R4 |
4 |
4-byte flyttals |
PT_DOUBLE |
5 |
Flyttal dubbel |
PT_CURRENCY |
6 |
Signerad 64-bitars helta (decimal med 4 siffror till höger om decimalt pt) |
PT_APPTIME |
7 |
Programtid |
PT_ERROR |
10 |
32-bitars felvärde |
PT_BOOLEAN |
11 |
16-bitars boolesk (icke-noll sant) |
PT_OBJECT |
13 |
Inbäddat objekt i en egenskap |
PT_I8 |
20 |
8 byte signerat heltal |
PT_STRING8 |
30 |
Null-avslutad 8-bitarssträng |
PT_UNICODE |
31 |
Null-avslutad Unicode-sträng |
PT_SYSTIME |
64 |
FILETIME 64-bitars heltal med antal 100ns perioder sedan 1 januari 1601 |
PT_CLSID |
72 |
OLE GUID |
PT_BINARY |
258 |
Opretenterad (räknad bytematris) |
PT_MV_UNSPECIFIED |
4096 |
|
PT_MV_NULL |
4097 |
|
PT_MV_I2 |
4098 |
|
PT_MV_LONG |
4099 |
|
PT_MV_R4 |
4100 |
|
PT_MV_DOUBLE |
4101 |
|
PT_MV_CURRENCY |
4102 |
|
PT_MV_APPTIME |
4103 |
|
PT_MV_ERROR |
4106 |
|
PT_MV_BOOLEAN |
4107 |
|
PT_MV_OBJECT |
4109 |
|
PT_MV_I8 |
4116 |
|
PT_MV_STRING8 |
4126 |
|
PT_MV_UNICODE |
4127 |
|
PT_MV_SYSTIME |
4160 |
|
PT_MV_CLSID |
4168 |
|
PT_MV_BINARY |
4354 |
Följande är ett exempel på hur du anger en namngiven för strängegenskap:
Namn: "MyStringFieldName1"
Typ: PT_LONG
[HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Outlook\AllowedNamedProps\{00020329-0000-0000-C000-000000000046}\MyStringFieldName1] "Typ"=dword:00000003
Följande är ett exempel på hur du anger en namngiven efter-ID-egenskap:
ID: 0x0330
Typ: PT_LONG
[HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Outlook\AllowedNamedProps\{00020329-0000-0000-C000-000000000046}\MyMAPIProp1] "Kind"=dword:000000000 "ID"=dword:00000330 "Type"=dword:00000003
För de här två exemplen visas registret ungefär så här i Registereditorn:
{00020329-0000-0000-C000-000000000046}
MyStringFieldName1
Typ = 3
MyStringFieldName2
Typ = 3
{00020329-0000-0000-C000-000000000046}
MyMAPIProp1
Kind = 0
ID = 330
Typ = 3
MyMAPIProp2
Kind = 0
ID = 331
Typ = 3
Rekommenderas inte: Återaktivera möjligheten att skapa egenskaper
Tre registernycklar kan distribueras till klientdatorer för att inaktivera blockeringen av anpassade egenskaper och återställa Outlook till det tidigare beteendet. De här registernycklarna stöds av gruprinciper. Följande registernycklar kan återställa Outlook 2003 till det tidigare beteendet:
Obs! Följande registernycklar återställer inte Outlook 2007 till det tidigare beteendet.
-
AllowTNEFtoCreateProps (HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Outlook\Options\Mail] "AllowTNEFtoCreateProps"=dword:000000000): Om värdet är 0 kan inte TNEF/MIME skapa nya icke-Outlook-anpassade egenskaper. Det här värdet är standardvärdet. Om värdet är 1 kan TNEF/MIME skapa nya icke-Outlook-anpassade egenskaper.
-
AllowMSGFilestoCreateProps: Om värdet är 0 kan MSG-filer och .oft-filer inte skapa nya icke-Outlook-anpassade egenskaper. Det här värdet är standardvärdet. Om värdet är 1 kan MSG-filer och .oft-filer skapa nya icke-Outlook-anpassade egenskaper.
-
Tillåt inteTNEFPreservation: För att underlätta migreringen till det här nya beteendet bevarar Outlook den ursprungliga TNEF när anpassade egenskaper inte skapas. Den ursprungliga TNEF sparas i en binär ström på objektet som sparas. Outlook använder följande egenskapstagg för att spara strömmen:
PR_TNEF_UNPROCESSED_PROPS PROG_TAG(PT_BINARY, 0x0e9C). HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Outlook\Options\Mail ] "DisallowTNEFPreservation "=dword:000000000
registerinställningen styr om Outlook skapar egenskapen PR_TNEF_UNPROCESSED_PROPS.
Obs! Egenskapen PR_TNEF_UNPROCESSED_PROPS tas bort från ett meddelande när du bäddar in ett meddelande i ett annat meddelande som en bifogad fil. Egenskapen PR_TNEF_UNPROCESSED_PROPS tas också bort när du vidarebefordrar ett meddelande eller svarar på ett meddelande.