Cambios en las propiedades personalizadas de Outlook

Se aplica a: Microsoft Office Outlook 2007Microsoft Office Outlook 2003

Resumen


Para garantizar el uso coherente de las propiedades personalizadas o de los campos, Microsoft Office Outlook 2003 Service Pack 2 (SP2) y las versiones posteriores de Outlook limitan algunas de las formas en las que se pueden introducir propiedades personalizadas en los almacenes de datos de Outlook. Por ejemplo, las propiedades personalizadas se pueden introducir de maneras específicas en los archivos de carpetas personales de Outlook (. pst).

INTRODUCCIÓN


Este artículo hace lo siguiente:
  • Proporciona información general sobre las propiedades personalizadas.
  • Explica cómo se ha cambiado el comportamiento de las propiedades personalizadas en Outlook 2003 SP2 y en versiones posteriores de Outlook.
  • Explica algunos procedimientos recomendados para crear nuevas propiedades y métodos que no recomendamos.

Más información


Acerca de las propiedades personalizadas

Las propiedades personalizadas se usan en programas de correo electrónico, como Outlook, para agregar más información a un mensaje. Normalmente, esta información adicional la usa un programa de correo electrónico con un fin específico. Sin embargo, hay otras maneras de usar las propiedades personalizadas. Por ejemplo, se pueden agregar propiedades personalizadas a mensajes o elementos si usa formularios personalizados de Outlook y esos formularios contienen campos personalizados. Las propiedades personalizadas se usan con frecuencia para agregar más información con el fin de realizar un seguimiento. Las propiedades personalizadas también se usan para agregar datos que el usuario no tiene que ver. Una solución personalizada también puede Agregar propiedades personalizadas a los elementos normales. Una solución personalizada agrega mediante programación propiedades personalizadas a un mensaje o elemento sin necesidad de un formulario personalizado.Las propiedades personalizadas pueden persistir en el formato de archivo. msg y en el formato de archivo. oft de Outlook. Además, las propiedades personalizadas pueden persistir en los mensajes de correo electrónico que se envían a través de Internet si el remitente usa la opción de formato de texto enriquecido enviar con Outlook . Esta opción encapsula la sección MAPI del mensaje en formato de encapsulación neutro del transporte (TNEF) y, a continuación, se descodifica la TNEF cuando se recibe el mensaje.Un remitente puede enviar un correo electrónico con propiedades personalizadas en los siguientes escenarios:
  • Se envía un formulario personalizado único. En formularios de una sola vez, el formulario está incrustado en el mensaje. El formulario no se publica en ningún otro sitio. Para obtener más información sobre formularios de un solo descuento, consulte el siguiente artículo:
  • Se envía un formulario personalizado publicado. En este caso, el formulario personalizado no se envía porque el formulario no está incrustado en el mensaje. Sin embargo, las propiedades personalizadas que se usaron en el formulario siguen estando incluidas en el mensaje.
Nota Hay muchas maneras de hacer referencia a las propiedades personalizadas, en función del contexto en el que se usan las propiedades personalizadas. En la interfaz de usuario de Outlook, como en el selector de campos, se hace referencia a las propiedades personalizadas como campos definidos por el usuario o como campos personalizados. En la biblioteca de objetos de Outlook, las propiedades personalizadas se pueden denominar propiedades de usuario o como propiedades definidas por el usuario después de la colección UserProperties . En MAPI, los campos personalizados se denominan propiedades con nombre. MAPI proporciona una utilidad para hacer lo siguiente:
  • Asignar nombres a propiedades
  • Asignar nombres a identificadores únicos
  • Hacer que la asignación sea persistente
Para obtener más información sobre cómo se implementan las propiedades con nombre en MAPI, visite el siguiente sitio web de MSDN: Nota En un entorno de Exchange, el término "almacén", tal como se usa en este artículo, hace referencia a un almacén de buzón completo (base de datos). El término no se refiere al almacén de buzones de un usuario individual. Es posible que haya una o más bases de datos de buzones de Exchange en una organización.

Cambios de comportamiento en Outlook

La implementación de MAPI en Outlook ha sido modificada para controlar el modo en que se pueden crear las propiedades personalizadas. Para garantizar el uso coherente de las propiedades personalizadas, las propiedades personalizadas ya deben utilizarse en la organización o en el cliente de Outlook. Tan pronto como se utilicen o se registren propiedades personalizadas, las propiedades personalizadas podrán transmitirse libremente a otros clientes de Outlook o a servidores que ejecuten Exchange Server. Las propiedades personalizadas también pueden enviarse a través de Internet.Los mensajes de correo electrónico suelen enviarse en formato MIME a través de Internet. Cuando Outlook recibe un mensaje de correo electrónico de Internet, el mensaje se convierte en una representación MAPI. A continuación se muestran algunos ejemplos de protocolos de correo electrónico de Internet:
  • POP
  • IMAP
  • HTTP (Outlook.com)
De forma predeterminada, Outlook ya no permite el correo de Internet para crear nuevas propiedades personalizadas. Solo se conservan en los mensajes de correo electrónico entrantes las propiedades que ya se han creado en el almacén de entrega de correo predeterminado. Este cambio afecta principalmente a los mensajes que se envían en TNEF (winmail. dat), donde el remitente ha usado la opción enviar con formato de texto enriquecido de Outlook . Sin embargo, los mensajes de Internet que contienen propiedades de encabezado de mensajes X también se ven afectados.Nota Los mensajes que contienen propiedades personalizadas enviadas en una organización de Exchange no se ven afectados por estos cambios.Las propiedades personalizadas también pueden guardarse en archivos. msg y en archivos. oft. Si un usuario abre un archivo. msg que tiene propiedades personalizadas, dichas propiedades personalizadas no se guardan en el almacén predeterminado cuando el mensaje se guarda, se reenvía, etc. Normalmente, los archivos. oft se usan para realizar copias de seguridad de formularios personalizados de Outlook. Con los archivos. oft, el nuevo comportamiento se aplica a todos los tipos de elementos. El formulario personalizado no se abrirá. En su lugar, el mensaje aparecerá en el formulario predeterminado para ese tipo de elemento en particular.En Resumen, este cambio en el diseño puede dar lugar a dos cosas:
  • Outlook omite las propiedades personalizadas no existentes. Si una propiedad personalizada no existe en el almacén de entrega, no se creará la propiedad y se perderá su valor. Si la propiedad personalizada ya existe en el almacén de entrega, se conservará su valor. Este cambio se aplica a lo siguiente:
    • Mensajes de correo electrónico de Internet que tienen TNEF y sus mensajes incrustados.
    • Mensajes S/MIME.
    • archivos. msg cuando coloca el archivo. msg en una ventana de elemento de Outlook para agregar el archivo a otro elemento. Este cambio también se aplica a los archivos. msg cuando coloca el archivo. msg en la ventana principal de Outlook para agregar el archivo a una carpeta o a la ventana de Microsoft Word cuando usa Word como editor de correo electrónico.
    • archivos. msg en los que un usuario hace doble clic o haga clic con el botón derecho para abrirlo.  
  • Outlook pasa por alto la definición de formulario de un solo descuento. Si un formulario de un solo descuento especifica una propiedad personalizada y esa propiedad personalizada no existe en el almacén de entrega, no se representará el formulario de un solo apagado. En su lugar, el usuario verá el formulario predeterminado para ese tipo de elemento en particular. Este cambio se aplica a los mensajes de correo electrónico de Internet que contienen una definición de formulario de un solo apagado que se encapsula en TNEF. Este cambio también se aplica a los archivos. oft en los que un usuario hace doble clic o hace clic con el botón derecho para abrirlo.

Procedimientos recomendados y otras formas de crear nuevas propiedades

Hay varias formas de diseñar y desarrollar soluciones personalizadas. Algunos de estos enfoques se consideran procedimientos recomendados. Otros enfoques también pueden funcionar, pero no recomendamos esos métodos por uno o varios motivos.

Procedimiento recomendado: agregar campos personalizados mediante programación

Se pueden usar varias API para agregar campos personalizados a los elementos mediante programación. Para ello, use el método UserProperties. Add en la biblioteca de objetos de Outlook ("Outlook. Application"). En el código siguiente se muestra este procedimiento recomendado.
Set myProp = myItem.UserProperties.Add("MyPropName", olText)
También puede usar la biblioteca de objetos CDO ("MAPI. Sesión ") para agregar campos personalizados. Para obtener más información, visite el siguiente sitio web de MSDN:Para los programadores de C++, la MAPI extendida puede usarse para agregar propiedades con nombre. Para obtener más información, visite el siguiente sitio web de MSDN:

Procedimiento recomendado: usar formularios personalizados publicados que contengan campos personalizados

Outlook confía en gran medida en los formularios personalizados publicados. Sin embargo, Outlook no confía en formularios no publicados ni formularios de un solo formulario. Esto incluye los archivos. oft. Por lo tanto, al diseñar una solución de formulario personalizado, le recomendamos encarecidamente que publique el formulario personalizado. Debe diseñar el formulario para que el formulario no se convierta en un formulario de un solo descuento. Siempre que se publique un formulario, el formulario no se verá afectado por el cambio en Outlook.Para obtener más información acerca de los formularios de uso único y cómo se pueden crear involuntariamente los formularios de uso único, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base: 
290657 Descripción de las definiciones de formulario y formularios de un solo apagado en Outlook 2002 
Al publicar un archivo. oft en un almacén diferente, el almacén predeterminado le permite crear propiedades en ese almacén. Además, al crear un formulario personalizado con propiedades personalizadas y publicarlo en la biblioteca de formularios o carpeta correspondiente, las propiedades personalizadas se crean en los almacenes afectados.

Procedimiento recomendado: implementar formularios personalizados mediante programación

Si está desarrollando un formulario personalizado de Outlook que usarán otras personas, hay algunos enfoques que puede usar. El método que use dependerá de varios factores. Estos factores incluyen el tipo de formulario, que usará el formulario, donde se utilizará el formulario, etc. Normalmente, si muchas personas usarán un formulario personalizado, le recomendamos que publique el formulario en la biblioteca de formularios de la organización. Sin embargo, si no es posible, es posible que desee publicar el formulario en una carpeta compartida o en la biblioteca de formularios personales de algunos usuarios. Puede instalar mediante programación un formulario personalizado con el método CreateItemFromTemplate de la biblioteca de objetos de Outlook. Use el método CreateItemFromTemplate para abrir un archivo. oft y, a continuación, publique el formulario con el método PublishForm . En este caso, un archivo. oft no se ve afectado por los cambios de las propiedades personalizadas.

No se recomienda: implementar o enviar archivos. oft para que los usuarios abran

Puede guardar formularios personalizados de Outlook como archivos. oft. Estos formularios pueden contener campos personalizados, cambios en la interfaz de usuario y código personalizado de Microsoft Visual Basic Scripting Edition (VBScript) para agregar funciones al formulario. Aunque Outlook ya contiene características que impiden que se ejecute el código VBScript en archivos. oft, Outlook también restringe el uso de archivos. oft. Si un archivo. oft contiene propiedades personalizadas y el usuario no ha usado previamente esas propiedades personalizadas, las propiedades personalizadas no se encuentran en el almacén predeterminado del usuario. Outlook no representará el formulario personalizado cuando el usuario haga doble clic en el archivo. Sin embargo, para que Outlook abra un formulario personalizado que se almacene como un archivo. oft, haga clic en archivo, haga clic en nuevoy, a continuación, haga clic en elegir formulario. Después, puede cambiar la ubicación a plantillas del usuario en el sistema de archivosy, a continuación, hacer clic en examinar para abrir el archivo. oft. El formulario se abrirá y podrá guardar las propiedades personalizadas en el almacén predeterminado.

No se recomienda: Use la clave del registro AllowNamedProps

Algunas organizaciones pueden tener razones válidas para tener determinadas propiedades personalizadas disponibles en toda la organización. Si se usan varios almacenes, es posible que desee asegurarse de que se puede Agregar un conjunto de propiedades personalizadas a todas las tiendas. Por lo tanto, Outlook 2003 SP2 y versiones posteriores son compatibles con las claves de registro del cliente que especifican qué propiedades personalizadas se pueden crear. Para especificar las propiedades personalizadas que deben habilitarse, las propiedades personalizadas se definen en la siguiente clave del registro: HKEY_CURRENT_USER \software\microsoft\office\ <versión> \Outlook\allowednamedprops\Nota en esta clave del registro, <> de versión es un marcador de posición para la versión de Outlook que está usando. Para Outlook 2003, el número de versión es 11,0. Para Outlook 2007, el número de versión es 12,0. El número de versión aumentará en las versiones posteriores de Outlook.La estructura general de las claves del registro de una entrada en el registro es la siguiente:<GUID>
<nombre de propiedad>
"Kind" (DWORD)"ID" (DWORD)"Tipo" (DWORD)
Los siguientes marcadores de posición se usan en la estructura de claves del registro:
  • <guid>: contiene el GUID que especifica el conjunto de propiedades. Los campos personalizados de Outlook, o propiedades, que se usan en un formulario personalizado de Outlook tienen el GUID {00020329-0000-0000-C000-000000000046}. En MAPI, se hace referencia al GUID como PS_PULIC_STRINGS. Sin embargo, los programas MAPI personalizados pueden tener sus propios GUID para las propiedades personalizadas.  
  • <nombre de propiedad>: especifica el nombre de la propiedad. Si la propiedad se denomina mediante una cadena, el <nombre de propiedad> es el nombre de cadena real de la propiedad. Si se asigna un identificador a la propiedad, se omite el valor de esta clave del registro. Sin embargo, debe dar a la propiedad un nombre único para que la propiedad pueda almacenarse en el registro. Si la clave Kind se establece en 1 o es <> 0, el nombre de la clave del registro determinará el nombre de la propiedad. Si la clave Kind no es igual a 1, se omitirá este nombre de clave del registro.
  • "Kind" (DWORD): especifica si la propiedad se denomina mediante un identificador o mediante una cadena. Si el valor es 0, se asignará a la propiedad un identificador. El nombre es un valor numérico que se especifica mediante un identificador. Si el valor es 1, una cadena le asigna un nombre a la propiedad. Esta opción es la configuración predeterminada cuando "clase" no está presente.
  • "ID" (DWORD): contiene el nombre de identificador de una propiedad cuyo nombre es un identificador. Esta información es obligatoria si la clave Kind se establece en 0. Si la tecla Kind se establece en 1, esta información se pasa por alto.
  • "Tipo" (DWORD): especifica el tipo de propiedad.
Esta clave del registro es obligatoria, pero la clave del registro no se utiliza actualmente. En la tabla siguiente se enumeran los posibles valores de esta clave del registro basada en el tipo MAPI.
Tipo de MAPI Valor Descripción
PT_UNSPECIFIED 0 Reservado para uso de la interfaz (el tipo no es importante para quien llame)
PT_NULL 1 Valor de propiedad NULL
PT_I2 1 Valor de 16 bits con signo
PT_LONG 2 Valor de bit 32 en signo
PT_R4 cuatro punto flotante de 4 bytes
PT_DOUBLE 4 Doble de coma flotante
PT_CURRENCY 6 64 de bits signed int (decimal con 4 dígitos a la derecha de PT decimal)
PT_APPTIME siete Tiempo de aplicación
PT_ERROR base10 valor de error de 32 bits
PT_BOOLEAN once booleano de 16 bits (verdadero verdadero)
PT_OBJECT 13 Objeto incrustado en una propiedad
PT_I8 veinte entero de 8 bytes con signo
PT_STRING8 0,30 Cadena de 8 bits terminada en null
PT_UNICODE 31 Cadena Unicode terminada en null
PT_SYSTIME 64 Número entero de bits de FILETIME 64 con un número de períodos de 100 $ desde el 1 de enero de 1601
PT_CLSID 72 GUID OLE
PT_BINARY 258 Uninterpretado (matriz de bytes contadas)
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  
A continuación se describe un ejemplo de cómo establecer una propiedad con nombre de cadena:
Nombre: "MyStringFieldName1" tipo: PT_LONG
[HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Outlook\AllowedNamedProps\{00020329-0000-0000-C000-000000000046}\MyStringFieldName1] "Type"=dword:00000003
A continuación se describe un ejemplo de cómo establecer una propiedad con nombre:
ID: 0x0330 Type: PT_LONG
[HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Outlook\AllowedNamedProps\{00020329-0000-0000-C000-000000000046}\MyMAPIProp1] "Kind"=dword:00000000 "ID"=dword:00000330 "Type"=dword:00000003
Para estos dos ejemplos, el registro tiene un aspecto similar al siguiente en el editor del registro: {00020329-0000-0000-C000-000000000046}
MyStringFieldName1
Escriba = 3
MyStringFieldName2
Escriba = 3
{00020329-0000-0000-C000-000000000046}
MyMAPIProp1
Kind = 0ID = 330Type = 3
MyMAPIProp2
Kind = 0ID = 331Type = 3

No se recomienda: vuelva a habilitar la capacidad de crear propiedades

Se pueden implementar tres claves de registro en equipos cliente para deshabilitar el bloqueo de propiedades personalizadas y revertir Outlook a su comportamiento anterior. Estas claves del registro son compatibles con las directivas de grupo. Las siguientes claves del registro pueden revertir a su comportamiento anterior en Outlook 2003:Nota las siguientes claves del registro no revierten a Outlook 2007 a su comportamiento anterior.
  • AllowTNEFtoCreateProps (HKEY_CURRENT_USER \Software\microsoft\office\11.0\outlook\options\mail] "AllowTNEFtoCreateProps" = dword: 00000000): Si el valor es 0, TNEF/MIME no podrá crear nuevas propiedades personalizadas que no sean de Outlook. Este valor es el valor predeterminado. Si el valor es 1, TNEF/MIME puede crear nuevas propiedades personalizadas que no sean de Outlook.
  • AllowMSGFilestoCreateProps: Si el valor es 0, los archivos. msg y. oft no pueden crear nuevas propiedades personalizadas ajenas a Outlook. Este valor es el valor predeterminado. Si el valor es 1, los archivos. msg y. oft pueden crear nuevas propiedades no personalizadas de Outlook.
  • DisallowTNEFPreservation: para facilitar la migración a este nuevo comportamiento, Outlook conserva el TNEF original cuando no se crean las propiedades personalizadas. El TNEF original se guarda en una secuencia binaria en el elemento que se ha guardado. Outlook usa la siguiente etiqueta de propiedad para guardar la secuencia:
    PR_TNEF_UNPROCESSED_PROPS PROG_TAG(PT_BINARY, 0x0e9C).
    El valor de configuración HKEY_CURRENT_USER \software\microsoft\office\11.0\outlook\options\mail] "DisallowTNEFPreservation" = dword: 00000000 del registro controla si Outlook crea la propiedad PR_TNEF_UNPROCESSED_PROPS.Nota La propiedad PR_TNEF_UNPROCESSED_PROPS se quita de un mensaje al incrustar un mensaje como datos adjuntos en otro mensaje. La propiedad PR_TNEF_UNPROCESSED_PROPS también se quita al reenviar un mensaje o responder a un mensaje.