Podsumowanie
Aby zagwarantować spójne stosowanie właściwości niestandardowych lub pól, dodatek Service Pack 2 (SP2) dla programu Outlook 2003 dla pakietu Microsoft Office 2003 i nowszych wersji programu Outlook ogranicza niektóre sposoby wprowadzania właściwości niestandardowych do magazynów danych programu Outlook. Na przykład właściwości niestandardowe można wprowadzić w określony sposób w plikach folderów osobistych programu Outlook (pst).
WPROWADZENIE
W tym artykule omówiono następujące czynności:
-
Omówienie właściwości niestandardowych.
-
W tym artykule wyjaśniono, jak zmieniono zachowanie właściwości niestandardowych w programie Outlook 2003 z dodatkiem SP2 i w nowszych wersjach programu Outlook.
-
W tym artykule omówiono najważniejsze wskazówki dotyczące tworzenia nowych właściwości i niektóre metody, które nie są zalecane.
Więcej informacji
Właściwości niestandardowe — informacje
Właściwości niestandardowe są używane przez programy poczty e-mail, takie jak program Outlook, w celu dodania do wiadomości dodatkowych informacji. Zazwyczaj te dodatkowe informacje są używane przez program poczty e-mail do określonego celu. Istnieją jednak inne sposoby użycia właściwości niestandardowych. Na przykład właściwości niestandardowe można dodawać do wiadomości lub elementów, jeśli korzystasz z formularzy niestandardowych programu Outlook, a te formularze zawierają pola niestandardowe. Właściwości niestandardowe są często używane do dodawania dodatkowych informacji do celów śledzenia. Właściwości niestandardowe służą również do dodawania danych, których użytkownik nie musi widzieć. Rozwiązanie niestandardowe może również dodać właściwości niestandardowe do zwykłych elementów. Rozwiązanie niestandardowe programowo dodaje właściwości niestandardowe do wiadomości lub elementu bez konieczności tworzenia formularza niestandardowego.
Właściwości niestandardowe można utrwalać w formacie pliku msg i oft w programie Outlook. Ponadto właściwości niestandardowe mogą być zachowywane w wiadomościach e-mail wysyłanych przez Internet, jeśli nadawca korzysta z opcji Wyślij przy użyciu tekstu sformatowanego w programie Outlook . Ta opcja zawiera sekcję MAPI wiadomości w formacie TNEF (Transport Neutral Encapsulation Format), a następnie dekodowany tnef po odebraniu wiadomości.
Nadawca może wysłać wiadomość e-mail z właściwościami niestandardowymi w następujących scenariuszach:
-
Zostanie wysłany jednorazowy formularz niestandardowy. W formularzach jednorazowych formularz jest osadzony w wiadomości. Formularz nie jest publikowany w innym miejscu. Aby uzyskać więcej informacji o formularzach jednorazowych, zobacz następujący artykuł:
-
Wysyłany jest opublikowany formularz niestandardowy. W takim przypadku formularz niestandardowy nie jest wysyłany, ponieważ formularz nie jest osadzony w wiadomości. Jednak wszystkie właściwości niestandardowe, które zostały użyte w formularzu, nadal są uwzględniane w wiadomości.
Uwaga Istnieje wiele sposobów odwoływania się do właściwości niestandardowych, w zależności od kontekstu, w którym są używane właściwości niestandardowe. W interfejsie użytkownika programu Outlook, na przykład w selektorze pól, właściwości niestandardowe są nazywane polami zdefiniowanymi przez użytkownika lub polami niestandardowymi. W bibliotece obiektów programu Outlook właściwości niestandardowe po kolekcji UserProperties mogą być nazywane właściwościami użytkownika lub właściwościami zdefiniowanymi przez użytkownika. W mapi pola niestandardowe są określane jako nazwane właściwości. Mapi zapewnia obiekt do wykonywania następujących czynności:
-
Przypisywanie nazw do właściwości
-
Mapowanie nazw na unikatowe identyfikatory
-
Trwałe mapowanie
Aby uzyskać więcej informacji na temat implementacji nazwanych właściwości w mapi, odwiedź następującą witrynę internetową MSDN:
http://msdn2.microsoft.com/en-us/library/ms529055.aspx Uwaga W środowisku programu Exchange termin "magazyn" użyty w tym artykule dotyczy całego magazynu skrzynki pocztowej (bazy danych). Termin ten nie odnosi się do magazynu skrzynek pocztowych poszczególnych użytkowników. W organizacji może istnieć co najmniej jedna baza danych skrzynek pocztowych programu Exchange.
Zmiany zachowania w programie Outlook
Implementacja mapi w programie Outlook została zmieniona w celu kontrolowania sposobu tworzenia właściwości niestandardowych. Aby zagwarantować spójne stosowanie właściwości niestandardowych, właściwości niestandardowe muszą już być używane w organizacji lub w kliencie programu Outlook. Gdy tylko są używane lub zarejestrowane właściwości niestandardowe, właściwości niestandardowe mogą być swobodnie przesyłane do innych klientów programu Outlook lub do serwerów, na których działa Exchange Server. Właściwości niestandardowe mogą być również wysyłane przez Internet.
Wiadomości e-mail są zazwyczaj wysyłane przez Internet w formacie MIME. Gdy program Outlook otrzyma internetową wiadomość e-mail, wiadomość zostanie przekonwertowana na reprezentację MAPI. Poniżej przedstawiono przykłady internetowych protokołów poczty e-mail:
-
POP
-
IMAP
-
HTTP (Outlook.com)
Domyślnie program Outlook nie umożliwia już tworzyć nowych właściwości niestandardowych poczty internetowej. Tylko właściwości utworzone w domyślnym magazynie dostarczania poczty są zachowywane dla przychodzących wiadomości e-mail. Ta zmiana dotyczy głównie wiadomości wysyłanych w hermetyzowanym formacie TNEF (Winmail.dat), w którym nadawca użył opcji Wyślij przy użyciu opcji Tekst sformatowany w programie Outlook . Jednak dotyczy to również wiadomości internetowych zawierających właściwości nagłówka wiadomości X.
Uwaga Te zmiany nie wpływają na wiadomości zawierające właściwości niestandardowe wysyłane w organizacji programu Exchange.
Właściwości niestandardowe można również zapisywać w plikach msg i oft. Jeśli użytkownik otworzy plik msg z właściwościami niestandardowymi, te właściwości niestandardowe nie zostaną zapisane w magazynie domyślnym, gdy wiadomość zostanie zapisana, przesłana dalej itd. Zazwyczaj pliki oft są używane do tworzyć kopie zapasowe formularzy niestandardowych programu Outlook. W przypadku plików oft nowe zachowanie ma zastosowanie do wszystkich rodzajów elementów. Formularz niestandardowy nie zostanie otwarty. Zamiast tego komunikat zostanie wyświetlony w formularzu domyślnym dla tego konkretnego typu elementu.
Podsumowując, ta zmiana projektu może spowodować wystąpienie dwóch elementów:
-
Program Outlook ignoruje nie istniejące właściwości niestandardowe. Jeśli w magazynie dostawy nie istnieje właściwość niestandardowa, nie zostanie utworzona, a jej wartość zostanie utracona. Jeśli właściwość niestandardowa już istnieje w sklepie dostawy, jej wartość jest zachowywana. Ta zmiana dotyczy następujących elementów:
-
Internetowe wiadomości e-mail zawierające plik TNEF i osadzone wiadomości.
-
Wiadomości S/MIME.
-
Pliki msg po upuszczeniu pliku msg w oknie elementu programu Outlook w celu dodania pliku do innego elementu. Ta zmiana dotyczy również plików msg po upuszczeniu pliku msg w głównym oknie programu Outlook w celu dodania pliku do folderu lub w oknie microsoft Word podczas korzystania z Word jako edytora poczty e-mail.
-
pliki msg, które użytkownik klika dwukrotnie lub klika prawym przyciskiem myszy, aby otworzyć.
-
-
Program Outlook ignoruje jednorazową definicję formularza. Jeśli formularz jednorazowy określa właściwość niestandardową, a ta właściwość niestandardowa nie istnieje w magazynie dostawy, formularz jednorazowy nie jest renderowany. Zamiast tego użytkownik zobaczy formularz domyślny dla tego konkretnego typu elementu. Ta zmiana dotyczy internetowych wiadomości e-mail zawierających jednorazową definicję formularza, która jest hermetyzowana w formacie TNEF. Ta zmiana dotyczy także plików oft, które użytkownik klika dwukrotnie lub klika prawym przyciskiem myszy w celu otwarcia.
Najważniejsze wskazówki i inne sposoby tworzenia nowych właściwości
Istnieje wiele sposobów projektowania i opracowywania rozwiązań niestandardowych. Niektóre z tych metod są uznawane za najlepsze rozwiązania. Inne metody mogą również działać, ale nie zalecamy tych metod z jednego lub kilku powodów.
Najlepsze rozwiązanie: programowe dodawanie pól niestandardowych
Różne interfejsy API mogą być używane do programowego dodawania pól niestandardowych do elementów. W tym celu użyj metody UserProperties.Add w bibliotece obiektów programu Outlook ("Outlook.Application"). Ten najlepszy sposób działania przedstawiono w poniższym kodzie.
Set myProp = myItem.UserProperties.Add("MyPropName", olText)
Możesz również użyć biblioteki obiektów CDO ("MAPI). Sesja"), aby dodać pola niestandardowe. Aby uzyskać więcej informacji, odwiedź następującą witrynę internetową MSDN:
http://msdn2.microsoft.com/en-us/library/ms527518.aspx W przypadku deweloperów C++ rozszerzony interfejs MAPI może służyć do dodawania nazwanych właściwości. Aby uzyskać więcej informacji, odwiedź następującą witrynę internetową MSDN:
Najlepsze rozwiązanie: używanie opublikowanych formularzy niestandardowych zawierających pola niestandardowe
Program Outlook w dużej mierze ufa opublikowanym formularzom niestandardowym. Jednak program Outlook nie ufa niepublikowanym formularzom ani formularzom jednorazowym. Dotyczy to również plików oft. Dlatego podczas projektowania rozwiązania formularza niestandardowego zdecydowanie zalecamy opublikowanie formularza niestandardowego. Należy zaprojektować formularz tak, aby formularz nie stał się formularzem jednorazowym. Dopóki formularz zostanie opublikowany, zmiana w programie Outlook nie wpłynie na formularz.
Gdy publikujesz plik oft w innym magazynie, magazyn domyślny umożliwia tworzenie właściwości w tym magazynie. Ponadto po utworzeniu formularza niestandardowego zawierającego właściwości niestandardowe i opublikowaniu go w odpowiedniej bibliotece lub folderze formularzy właściwości niestandardowe są tworzone w odpowiednich sklepach.
Najlepsze rozwiązanie: programowe wdrażanie formularzy niestandardowych
Jeśli tworzysz formularz niestandardowy programu Outlook, który będzie używany przez inne osoby, możesz skorzystać z kilku metod. Podejście, którego używasz, zależy od kilku czynników. Czynniki te obejmują typ formularza, kto będzie korzystać z formularza, gdzie formularz będzie używany i tak dalej. Zazwyczaj, jeśli formularz niestandardowy będzie używany przez wiele osób, zalecamy opublikowanie formularza w bibliotece formularzy organizacyjnych. Jeśli jednak nie jest to możliwe, możesz opublikować formularz w folderze udostępnionym lub w bibliotece formularzy osobistych niektórych użytkowników. Formularz niestandardowy można programowo zainstalować przy użyciu metody CreateItemFromTemplate w bibliotece obiektów programu Outlook. Aby otworzyć plik oft, należy użyć metody CreateItemFromTemplate, a następnie opublikować formularz przy użyciu metody PublishForm. W takim przypadku zmiany właściwości niestandardowych nie wpływają na plik oft.
Niezalecane: Wdrażanie lub wysyłanie plików oft do otwierania przez użytkowników
Formularze niestandardowe programu Outlook można zapisywać jako pliki oft. Te formularze mogą zawierać pola niestandardowe, zmiany interfejsu użytkownika i niestandardowy kod języka Microsoft Visual Basic Scripting Edition (VBScript) w celu dodania funkcji do formularza. Chociaż program Outlook już zawiera funkcje, które uniemożliwiają uruchamianie kodu VBScript w plikach oft, program Outlook ogranicza teraz również korzystanie z plików oft. Jeśli plik oft zawiera właściwości niestandardowe, a użytkownik nie używał wcześniej tych właściwości niestandardowych, właściwości niestandardowe nie znajdują się w domyślnym magazynie użytkownika. Program Outlook nie renderuje formularza niestandardowego, gdy użytkownik kliknie dwukrotnie plik. Jednak aby program Outlook otworzył formularz niestandardowy przechowywany jako plik oft, kliknij pozycję Plik, kliknij pozycję Nowy, a następnie kliknij pozycję Wybierz formularz. Następnie możesz zmienić lokalizację na Szablony użytkownika w systemie plików, a następnie kliknąć przycisk Przeglądaj , aby otworzyć plik oft. Formularz zostanie otwarty i będzie można zapisać właściwości niestandardowe w magazynie domyślnym.
Niezalecane: Użyj klucza rejestru AllowNamedProps
Niektóre organizacje mogą mieć uzasadnione powody, aby niektóre właściwości niestandardowe były dostępne w całej organizacji. Jeśli jest używanych wiele sklepów, warto upewnić się, że zestaw właściwości niestandardowych można dodać do wszystkich sklepów. Dlatego program Outlook 2003 z dodatkiem SP2 i nowsze wersje obsługują klucze rejestru po stronie klienta określające, które właściwości niestandardowe można tworzyć. Aby określić, które właściwości niestandardowe mają być włączone, właściwości niestandardowe są definiowane w ramach następującego klucza rejestru: HKEY_CURRENT_USER\Software\Microsoft\Office\<wersja>\Outlook\AllowedNamedProps\
Uwaga W tym kluczu rejestru <wersja> jest symbolem zastępczym używanej wersji programu Outlook. W przypadku programu Outlook 2003 numer wersji to 11.0. W przypadku programu Outlook 2007 numer wersji to 12.0. Numer wersji zostanie zwiększony w nowszych wersjach programu Outlook.
Ogólna struktura klucza rejestru wpisu w rejestrze to:
<identyfikator GUID>
> nazwy właściwości <
"Miły" (dword)
"ID" (dword)
"Typ" (dword) W strukturze klucza rejestru są używane następujące symbole zastępcze:
-
<> GUID : zawiera identyfikator GUID określający zestaw właściwości. Wszystkie pola niestandardowe lub właściwości programu Outlook używane w formularzu niestandardowym programu Outlook mają identyfikator GUID {00020329-0000-0000-C000-000000000046}. W funkcji MAPI identyfikator GUID jest nazywany PS_PULIC_STRINGS. Jednak niestandardowe programy MAPI mogą mieć własne identyfikatory GUID dla właściwości niestandardowych.
-
<nazwa właściwości>: określa nazwę właściwości. Jeśli właściwość jest nazwana ciągiem,> nazwa właściwości <jest rzeczywistą nazwą ciągu właściwości. Jeśli właściwość jest nazwana identyfikatorem, wartość tego klucza rejestru jest ignorowana. Należy jednak nadać właściwości unikatową nazwę, aby można było ją przechowywać w rejestrze. Jeśli dla klucza Kind jest ustawiona wartość 1 lub jest <> 0, nazwa klucza rejestru określa nazwę właściwości. Jeśli klucz Kind nie jest równy 1, ta nazwa klucza rejestru zostanie zignorowana.
-
"Kind" (dword): Określa, czy właściwość ma być nazwana identyfikatorem, czy ciągiem. Jeśli wartością jest 0, nazwa właściwości zostanie nadana identyfikatorowi. Nazwa jest wartością liczbową określoną przez identyfikator. Jeśli wartość wynosi 1, właściwość zostanie nazwana ciągiem. To ustawienie jest ustawieniem domyślnym, gdy nie ma pozycji "Rodzaj".
-
"ID" (dword): zawiera nazwę identyfikatora właściwości nazwanej identyfikatorem. Te informacje są wymagane, jeśli dla klucza Kind ustawiono wartość 0. Jeśli dla klawisza Kind jest ustawiona wartość 1, te informacje są ignorowane.
-
"Typ" (dword): Określa typ właściwości.
Ten klucz rejestru jest wymagany, ale klucz rejestru nie jest obecnie używany. W poniższej tabeli wymieniono możliwe wartości tego klucza rejestru na podstawie typu MAPI.
Typ MAPI |
Wartość |
Opis |
---|---|---|
PT_UNSPECIFIED |
0 |
Zarezerwowany do użytku w interfejsie (typ nie jest ważny dla wywołującego) |
PT_NULL |
1 |
Wartość właściwości NULL |
PT_I2 |
2 |
Podpisana wartość 16-bitowa |
PT_LONG |
3 |
Podpisana wartość 32-bitowa |
PT_R4 |
4 |
4-bajtowy punkt przestawny |
PT_DOUBLE |
5 |
Podwójny punkt przestawny |
PT_CURRENCY |
6 |
Podpisany 64-bitowy int (dziesiętny w/4 cyfry po prawej stronie separatora dziesiętnego) |
PT_APPTIME |
7 |
Czas aplikacji |
PT_ERROR |
10 |
32-bitowa wartość błędu |
PT_BOOLEAN |
11 |
16-bitowa wartość logiczna (nie równa zero prawda) |
PT_OBJECT |
13 |
Obiekt osadzony we właściwości |
PT_I8 |
20 |
Liczba całkowita z podpisem 8-bajtowym |
PT_STRING8 |
30 |
Ciąg 8-bitowy zakończony wartością null |
PT_UNICODE |
31 |
Ciąg unicode zakończony wartością null |
PT_SYSTIME |
64 |
FileTIME 64-bitowa liczba całkowita z liczbą w/liczbą okresów 100ns od 1 stycznia 1601 |
PT_CLSID |
72 |
OLE GUID |
PT_BINARY |
258 |
Nieinterpretowana (zliczona tablica bajtowa) |
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 |
Poniżej przedstawiono przykład ustawiania właściwości nazwanej ciągiem:
Nazwa: "MyStringFieldName1"
Typ: PT_LONG
[HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Outlook\AllowedNamedProps\{00020329-0000-0000-C000-000000000046}\MyStringFieldName1] "Type"=dword:00000003
Poniżej przedstawiono przykład ustawiania właściwości nazwanej według identyfikatora:
Identyfikator: 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
W przypadku tych dwóch przykładów rejestr jest podobny do następującego w Edytorze rejestru:
{00020329-0000-0000-C000-000000000046}
MyStringFieldName1
Typ = 3
MyStringFieldName2
Typ = 3
{00020329-0000-0000-C000-000000000046}
MyMAPIProp1
Rodzaj = 0
Identyfikator = 330
Typ = 3
MyMAPIProp2
Rodzaj = 0
Identyfikator = 331
Typ = 3
Niezalecane: Ponownie włącz możliwość tworzenia właściwości
Na komputerach klienckich można wdrożyć trzy klucze rejestru, aby wyłączyć blokowanie właściwości niestandardowych i przywrócić poprzednie zachowanie programu Outlook. Te klucze rejestru są obsługiwane przez zasady grupy. Następujące klucze rejestru mogą przywrócić poprzednie działanie programu Outlook 2003:
Uwaga Poniższe klucze rejestru nie przywrócą poprzedniego zachowania programu Outlook 2007.
-
AllowTNEFtoCreateProps (HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Outlook\Options\Mail] "AllowTNEFtoCreateProps"=dword:00000000): Jeśli wartość to 0, TNEF/MIME nie może utworzyć nowych właściwości niestandardowych innych niż Outlook. Ta wartość jest wartością domyślną. Jeśli wartość wynosi 1, funkcja TNEF/MIME może tworzyć nowe właściwości niestandardowe inne niż właściwości niestandardowe programu Outlook.
-
AllowMSGFilestoCreateProps: Jeśli wartość wynosi 0, pliki msg i oft nie mogą tworzyć nowych właściwości niestandardowych innych niż Outlook. Ta wartość jest wartością domyślną. Jeśli wartość wynosi 1, pliki msg i pliki oft mogą tworzyć nowe właściwości niestandardowe inne niż outlook.
-
DisallowTNEFPreservation: Aby ułatwić migrację do tego nowego zachowania, program Outlook zachowuje oryginalny plik TNEF, gdy nie są tworzone właściwości niestandardowe. Oryginalny plik TNEF jest zapisywany w strumieniu binarnym na zapisanym elemencie. W programie Outlook do zapisania strumienia jest używany następujący tag właściwości:
PR_TNEF_UNPROCESSED_PROPS PROG_TAG(PT_BINARY; 0x0e9C). TheHKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Outlook\Options\Mail] "DisallowTNEFPreservation "=dword:000000000
Ustawienie rejestru określa, czy program Outlook tworzy właściwość PR_TNEF_UNPROCESSED_PROPS.
Uwaga Właściwość PR_TNEF_UNPROCESSED_PROPS jest usuwana z wiadomości po osadzaniu wiadomości w innej wiadomości jako załączniku. Właściwość PR_TNEF_UNPROCESSED_PROPS jest również usuwana podczas przesyłania dalej wiadomości lub odpowiadania na nią.