Compartir a través de


Complementos contextuales de Outlook

Los complementos contextuales son complementos de Outlook que se activan de acuerdo con el texto en un mensaje o una cita. Mediante el uso de complementos contextuales, un usuario puede iniciar tareas relacionadas con un elemento de correo sin salir del propio elemento. Por ejemplo, un complemento contextual puede elegir una cadena en el cuerpo de un elemento de correo que abra un complemento de sugerencia de reunión.

Puede especificar reglas de expresión regular para activar un complemento contextual cuando se encuentra una coincidencia en campos específicos del mensaje. Los complementos contextuales solo se activan en modo de lectura. Outlook no activa complementos contextuales cuando el usuario está redactando un elemento. También hay otros escenarios en los que Outlook no activa complementos. Para obtener más información, vea Reglas de activación para complementos de Outlook.

Importante

Ahora se han retirado los complementos contextuales de Outlook basados en entidades. Como solución alternativa, implemente reglas de expresión regular en el complemento contextual.

Configuración del manifiesto

Nota:

Los complementos contextuales de Outlook no se admiten cuando el complemento usa un manifiesto unificado para Microsoft 365.

El manifiesto XML de un complemento contextual debe incluir un elemento ExtensionPoint con su xsi:type atributo establecido DetectedEntityen . En el <elemento ExtensionPoint> , el complemento debe especificar una regla de expresión regular mediante el elemento Rule con su xsi:type atributo establecido en ItemHasRegularExpressionMatch.

En el ejemplo siguiente se activa un complemento cada vez que se incluye un símbolo de stock en el cuerpo del elemento de correo actual.

<ExtensionPoint xsi:type="DetectedEntity">
  <Label resid="Context.Label" />
  <SourceLocation resid="DetectedEntity.URL" />
  <Rule xsi:type="ItemHasRegularExpressionMatch" PropertyName="BodyAsPlaintext" RegExName="TickerSymbols" RegExValue="\b(NYSE|NASDAQ|AMEX):\s*[A-Za-z]+\b" />
</ExtensionPoint>

Caracteres admitidos en reglas de expresión regular

Outlook evalúa las expresiones regulares en función de las reglas para el intérprete de JavaScript que usa el explorador o el control webview en el equipo cliente. Para mayor brevedad, en este artículo se usa "browser" para hacer referencia al "control browser o webview". Outlook admite la misma lista de caracteres especiales admitidos por todos los procesadores de XML. En la tabla siguiente, se muestra una lista de estos caracteres especiales. Puede usar estos caracteres en una expresión regular especificando la secuencia de escape del carácter correspondiente.

Carácter Descripción Secuencia de escape que se usará
" Comillas dobles &quot;
& Y comercial &amp;
' Apóstrofo &apos;
< Signo de menor que &lt;
> Signo de mayor que &gt;

Procedimientos recomendados para usar expresiones regulares en reglas

Tenga en cuenta lo siguiente cuando use expresiones regulares.

  • Si especifica una ItemHasRegularExpressionMatch regla en el cuerpo de un elemento, la expresión regular debe filtrar aún más el cuerpo y no debe intentar devolver todo el cuerpo del elemento. El uso de una expresión regular como .* para intentar obtener todo el cuerpo de un elemento no siempre devuelve los resultados esperados.

  • El cuerpo del texto sin formato que se muestre en un explorador puede ser ligeramente distinto en otro. Si usa una regla ItemHasRegularExpressionMatch con BodyAsPlaintext como el atributo de PropertyName, pruebe la expresión regular en todos los exploradores compatibles con el complemento.

    Dado que los distintos exploradores usan diferentes formas de obtener el cuerpo del texto de un elemento seleccionado, debe asegurarse de que la expresión regular es compatible con las diferencias sutiles que pueden devolverse como parte del texto del cuerpo. Por ejemplo, los exploradores pueden devolver saltos de línea de forma diferente. For more information, see W3C DOM Compatibility - HTML.

  • El cuerpo HTML de un elemento es ligeramente diferente entre Outlook clásico en Windows o Outlook en Mac, y Outlook en la web, en dispositivos móviles o nuevo Outlook en Windows (versión preliminar). Defina con cuidado las expresiones regulares.

  • En función del cliente de Outlook, el tipo de dispositivo o la propiedad en la que se está aplicando una expresión regular, hay otros procedimientos recomendados y límites para cada uno de los clientes que debe tener en cuenta al diseñar expresiones regulares como reglas de activación. Para obtener más información, consulte Límites de activación y API de JavaScript para complementos de Outlook.

Uso de resultados de expresiones regulares en el código JavaScript

En el código JavaScript del complemento, puede obtener coincidencias con una expresión regular mediante los métodos siguientes en el elemento actual.

  • getRegExMatches devuelve coincidencias en el elemento actual para todas las expresiones regulares especificadas en una ItemHasRegularExpressionMatch regla del complemento.

  • getRegExMatchesByName muestra resultados en el elemento actual de la expresión regular identificada que se especifica en una regla ItemHasRegularExpressionMatch del complemento.

  • getSelectedRegExMatches devuelve coincidencias resaltadas en el elemento actual para la expresión regular especificada en una ItemHasRegularExpressionMatch regla del complemento.

Al evaluar las expresiones regulares, los resultados se devuelven al complemento en un objeto de matriz. Para getRegExMatches, ese objeto tiene el identificador del nombre de la expresión regular.

Nota:

Outlook no devuelve coincidencias en ningún orden determinado de la matriz. Además, no debe suponer que las coincidencias se devuelven en el mismo orden en esta matriz, incluso cuando se ejecuta el mismo complemento en cada uno de estos clientes en el mismo elemento del mismo buzón.

A continuación se muestra un ejemplo de una colección de reglas que contiene una ItemHasRegularExpressionMatch regla con una expresión regular denominada videoURL.

<Rule xsi:type="RuleCollection" Mode="And">
    <Rule xsi:type="ItemIs" ItemType="Message"/>
    <Rule xsi:type="ItemHasRegularExpressionMatch" RegExName="videoURL" RegExValue="http://www\.youtube\.com/watch\?v=[a-zA-Z0-9_-]{11}" PropertyName="BodyAsPlaintext"/>
</Rule>

A getRegExMatches continuación, se llama al método en el mensaje actual para establecer una variable videos en los resultados de la regla especificada ItemHasRegularExpressionMatch .

const videos = Office.context.mailbox.item.getRegExMatches().videoURL;

Vea también