Suplementos contextuais do Outlook

Suplementos contextuais são suplementos do Outlook ativados com base no texto de um compromisso ou de uma mensagem. Ao utilizar suplementos contextuais, um utilizador pode iniciar tarefas relacionadas com um item de correio sem sair do próprio item. Por exemplo, um suplemento contextual pode escolher uma cadeia no corpo de um item de correio que abre um suplemento de sugestão de reunião.

Pode especificar regras de expressão regulares para ativar um suplemento contextual quando for encontrada uma correspondência em campos específicos da mensagem. Os suplementos contextuais só são ativados no modo de leitura. O Outlook não ativa suplementos contextuais quando o utilizador está a compor um item.

Importante

Os suplementos contextuais do Outlook baseados em entidades foram descontinuados. Como solução alternativa, implemente regras de expressão regulares no seu suplemento contextual.

Configurar o manifesto

Observação

Os suplementos contextuais do Outlook não são suportados quando o suplemento utiliza um manifesto unificado para o Microsoft 365.

O manifesto de um suplemento contextual tem de incluir um elemento do ExtensionPoint com o respetivo xsi:type atributo definido como DetectedEntity. No elemento ExtensionPoint>, o suplemento tem de especificar uma regra de expressão regular com o elemento Regra com o< respetivo xsi:type atributo definido como ItemHasRegularExpressionMatch.

O exemplo seguinte ativa um suplemento sempre que um símbolo de stock é incluído no corpo do item de correio atual.

<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>

Carateres suportados em regras de expressão regulares

O Outlook avalia expressões regulares com base nas regras do interpretador JavaScript utilizado pelo controlo do browser ou da webview no computador cliente. Para fins de brevidade, este artigo utiliza "browser" para fazer referência ao "controlo do browser ou da webview". O Outlook dá suporte à mesma lista de caracteres especiais que têm suporte em todos os processadores XML. A tabela a seguir lista os caracteres especiais. Pode utilizar estes carateres numa expressão regular ao especificar a sequência de escape do caráter correspondente.

Caractere Descrição Sequência de escape a ser usada
" Aspas duplas &quot;
& E comercial &amp;
' Apóstrofo &apos;
< Sinal menor que &lt;
> Sinal maior que &gt;

Práticas recomendadas para usar expressões regulares em regras

Tenha em atenção o seguinte quando utilizar expressões regulares.

  • Se especificar uma ItemHasRegularExpressionMatch regra no corpo de um item, a expressão regular deverá filtrar ainda mais o corpo e não deve tentar devolver todo o corpo do item. A utilização de uma expressão regular, como .* para tentar obter todo o corpo de um item, nem sempre devolve os resultados esperados.

  • O corpo de texto sem formatação retornado em um navegador pode ser sutilmente diferente do retornado em outro. Se você usa uma regra ItemHasRegularExpressionMatch com BodyAsPlaintext como atributo PropertyName, teste sua expressão regular em todos os navegadores compatíveis com o suplemento.

    Como diferentes navegadores usam diferentes maneiras de obter o corpo de texto de um item selecionado, você deve se certificar de que sua expressão regular dê suporte a diferenças sutis que possam ser retornadas como parte do corpo de texto. Por exemplo, os browsers podem devolver quebras de linha de forma diferente. Para obter mais informações, veja W3C DOM Compatibility - HTML.

  • O corpo HTML de um item é ligeiramente diferente entre o Outlook clássico no Windows ou o Outlook no Mac e Outlook na Web, em dispositivos móveis ou o novo Outlook no Windows. Defina as expressões regulares com cuidado.

  • Consoante o cliente do Outlook, o tipo de dispositivo ou a propriedade em que uma expressão regular está a ser aplicada, existem outras melhores práticas e limites para cada um dos clientes que deve ter em conta ao conceber expressões regulares como regras de ativação. Para obter detalhes, veja Limites para ativação e API JavaScript para suplementos do Outlook.

Utilizar resultados de expressões regulares no código JavaScript

No código JavaScript do seu suplemento, pode obter correspondências para uma expressão regular com os seguintes métodos no item atual.

  • getRegExMatches devolve correspondências no item atual para todas as expressões regulares especificadas numa ItemHasRegularExpressionMatch regra do suplemento.

  • getRegExMatchesByName retorna correspondências no item atual para a expressão regular especificada na regra ItemHasRegularExpressionMatch do suplemento.

  • getSelectedRegExMatches devolve correspondências realçadas no item atual para a expressão regular especificada numa ItemHasRegularExpressionMatch regra do suplemento.

Quando as expressões regulares são avaliadas, as correspondências são retornadas para seu suplemento em um objeto de matriz. Para getRegExMatches, esse objeto tem o identificador do nome da expressão regular.

Observação

O Outlook não devolve correspondências em nenhuma ordem específica na matriz. Além disso, não deve assumir que as correspondências são devolvidas pela mesma ordem nesta matriz, mesmo quando executa o mesmo suplemento em cada um destes clientes no mesmo item na mesma caixa de correio.

Segue-se um exemplo de uma coleção de regras que contém uma ItemHasRegularExpressionMatch regra com uma expressão regular chamada 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>

Em getRegExMatches seguida, o método é chamado na mensagem atual para definir uma variável videos para os resultados da regra especificada ItemHasRegularExpressionMatch .

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

Confira também