Partilhar via


Atualizar automaticamente a sua assinatura ao alternar entre contas do Exchange

A aplicação da assinatura correta às mensagens ao utilizar múltiplas contas do Exchange é agora facilitada com a adição dos OnMessageFromChanged eventos e OnAppointmentFromChanged à funcionalidade de ativação baseada em eventos . O OnMessageFromChanged evento ocorre quando a conta no campo De de de uma mensagem a ser composta é alterada, enquanto o OnAppointmentFromChanged evento ocorre quando o organizador de uma reunião que está a ser composta é alterado. Estes eventos expandem ainda mais as capacidades dos suplementos de assinatura e permitem-lhes:

  • Forneça aos utilizadores a conveniência de aplicar assinaturas personalizadas para cada uma das respetivas contas.
  • Permitir que os delegados da caixa de correio giram mensagens e pedidos de reunião de forma mais precisa e eficiente a partir de várias caixas de correio.
  • Certifique-se de que as mensagens e compromissos dos utilizadores cumprem as políticas de comunicação e marketing da organização.

As secções seguintes explicam como desenvolver um suplemento baseado em eventos que processa o OnMessageFromChanged evento para atualizar automaticamente a assinatura de uma mensagem quando a conta de correio no campo De é alterada.

Observação

Os OnMessageFromChanged eventos e OnAppointmentFromChanged foram introduzidos no conjunto de requisitos 1.13. Para obter informações sobre o suporte do cliente para estes eventos, veja Supported clients and platforms (Clientes e plataformas suportados).

Clientes e plataformas suportados

As tabelas seguintes listam combinações cliente-servidor que suportam os OnMessageFromChanged eventos e OnAppointmentFromChanged . Selecione o separador do evento aplicável.

Cliente Exchange Online Exchange 2019 no local (Atualização Cumulativa 12 ou posterior) Exchange 2016 no local (Atualização Cumulativa 22 ou posterior)
Browser (IU moderna)

novo Outlook no Windows
Com suporte Não aplicável Não aplicável
Windows (clássico)
Versão 2304 (Compilação 16327.20248) ou posterior
Com suporte Com suporte Com suporte
Mac
Versão 16.77 (23081600) ou posterior
Com suporte Não aplicável Não aplicável
iOS Não aplicável Não aplicável Não aplicável
Android Não aplicável Não aplicável Não aplicável

Pré-requisitos

Para testar as instruções, tem de ter, pelo menos, duas contas do Exchange.

Configurar seu ambiente

Conclua o guia de introdução do Outlook, que cria um projeto de suplemento com o gerador Yeoman para Suplementos do Office.

Configurar o manifesto

  1. Abra o ficheiro manifest.json .

  2. Adicione o seguinte objeto à matriz "extensions.runtimes". Observe o seguinte sobre esta marcação.

    • A "minVersion" do conjunto de requisitos da Caixa de Correio está configurada como "1.13", porque esta é a versão mais baixa do conjunto de requisitos que suporta o OnMessageFromChanged evento. Para obter mais informações, veja a tabela "Eventos suportados" em Configurar o suplemento do Outlook para ativação baseada em eventos.

    • O "ID" do runtime está definido como um nome descritivo, "autorun_runtime".

    • A propriedade "code" tem uma propriedade "page" subordinada definida como um ficheiro HTML e uma propriedade "script" subordinada definida como um ficheiro JavaScript. Irá criar ou editar estes ficheiros em passos posteriores. O Office utiliza um destes valores consoante a plataforma.

      • O Outlook clássico no Windows executa o processador de eventos num runtime apenas javaScript, que carrega diretamente um ficheiro JavaScript.
      • Outlook na Web e no Mac e o novo Outlook no Windows executam o processador num runtime do browser, que carrega um ficheiro HTML. O ficheiro HTML contém uma <script> etiqueta que, em seguida, carrega o ficheiro JavaScript.

      Para obter mais informações, consulte Runtimes nos Suplementos do Office.

    • A propriedade "lifetime" está definida como "short". Isto significa que o runtime é iniciado quando o evento ocorre e é encerrado quando o processador é concluído.

    • Existem "ações" para executar processadores para os OnMessageFromChanged eventos e OnNewMessageCompose . Irá criar os processadores num passo posterior.

    {
        "requirements": {
            "capabilities": [
                {
                    "name": "Mailbox",
                    "minVersion": "1.13"
                }
            ]
        },
        "id": "autorun_runtime",
        "type": "general",
        "code": {
            "page": "https://localhost:3000/commands.html",
            "script": "https://localhost:3000/launchevent.js"
        },
        "lifetime": "short",
        "actions": [
            {
                "id": "onMessageFromChangedHandler",
                "type": "executeFunction",
                "displayName": "onMessageFromChangedHandler"
            },
            {
                "id": "onNewMessageComposeHandler",
                "type": "executeFunction",
                "displayName": "onNewMessageComposeHandler"
            }
        ]
    }
    
  3. Adicione uma matriz "autoRunEvents" como uma propriedade do objeto na matriz "extensions". A matriz "autoRunEvents" contém um objeto com as seguintes propriedades de chave.

    • A propriedade "eventos" atribui processadores aos OnMessageFromChanged eventos e OnNewMessageCompose . Para obter informações sobre os nomes de eventos utilizados no manifesto unificado, consulte a tabela "Eventos suportados" em Configurar o suplemento do Outlook para ativação baseada em eventos.
    • O nome da função fornecido em "actionId" tem de corresponder à propriedade "id" do objeto correspondente na matriz "actions" configurada anteriormente.
    "autoRunEvents": [
        {
            "requirements": {
                "capabilities": [
                    {
                        "name": "Mailbox",
                        "minVersion": "1.13"
                    }
                ],
                "scopes": [
                    "mail"
                ]
            },
            "events": [
                {
                    "type": "messageFromChanged",
                    "actionId": "onMessageFromChangedHandler"
                },
                {
                    "type": "newMessageComposeCreated",
                    "actionId": "onNewMessageComposeHandler"
                }
            ]
        }
    ]
    

Dica

Implementar os processadores de eventos

Os processadores de eventos têm de ser configurados para os OnNewMessageCompose eventos e OnMessageFromChanged . A onNewMessageComposeHandler função adiciona uma assinatura a uma mensagem recentemente criada se uma predefinição ainda não estiver configurada na conta atual. Quando a conta no campo De é alterada, a onMessageFromChangedHandler função atualiza a assinatura com base nesta conta recentemente selecionada.

  1. A partir do mesmo projeto de início rápido, navegue para o diretório ./src e, em seguida, crie uma nova pasta com o nome launchevent.

  2. Na pasta ./src/launchevent , crie um novo ficheiro com o nome launchevent.js.

  3. Abra o ficheiro ./src/launchevent/launchevent.js no editor de código e adicione o seguinte código JavaScript.

    /*
     * Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license.
     * See LICENSE in the project root for license information.
     */
    
    // The OnNewMessageCompose event handler that adds a signature to a new message.
    function onNewMessageComposeHandler(event) {
        const item = Office.context.mailbox.item;
    
        // Check if a default Outlook signature is already configured.
        item.isClientSignatureEnabledAsync({ asyncContext: event }, (result) => {
            if (result.status === Office.AsyncResultStatus.Failed) {
                console.log(result.error.message);
                return;
            }
    
            // Add a signature if there's no default Outlook signature configured.
            if (result.value === false) {
                item.body.setSignatureAsync(
                    "<i>This is a sample signature.</i>",
                    { asyncContext: result.asyncContext, coercionType: Office.CoercionType.Html },
                    addSignatureCallback
                );
            }
        });
    }
    
    // The OnMessageFromChanged event handler that updates the signature when the email address in the From field is changed.
    function onMessageFromChangedHandler(event) {
        const item = Office.context.mailbox.item;
        const signatureIcon =
        "iVBORw0KGgoAAAANSUhEUgAAACcAAAAnCAMAAAC7faEHAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAzUExURQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKMFRskAAAAQdFJOUwAQIDBAUGBwgI+fr7/P3+8jGoKKAAAACXBIWXMAAA7DAAAOwwHHb6hkAAABT0lEQVQ4T7XT2ZalIAwF0DAJhMH+/6+tJOQqot6X6joPiouNBo3w9/Hd6+hrYnUt6vhLcjEAJevVW0zJxABSlcunhERpjY+UKoNN5+ZgDGu2onNz0OngjP2FM1VdyBW1LtvGeYrBLs7U5I1PTXZt+zifcS3Icw2GcS3vxRY3Vn/iqx31hUyTnV515kdTfbaNhZLI30AceqDiIo4tyKEmJpKdP5M4um+nUwfDWxAXdzqMNKQ14jLdL5ntXzxcRF440mhS6yu882Kxa30RZcUIjTCJg7lscsR4VsMjfX9Q0Vuv/Wd3YosD1J4LuSRtaL7bzXGN1wx2cytUdncDuhA3fu6HPTiCvpQUIjZ3sCcHVbvLtbNTHlysx2w9/s27m9gEb+7CTri6hR1wcTf2gVf3wBRe3CMbcHYvTODkXhnD0+178K/pZ9+n/C1ru/2HAPwAo7YM1X4+tLMAAAAASUVORK5CYII=";
    
        // Get the currently selected From account.
        item.from.getAsync({ asyncContext: event }, (result) => {
            if (result.status === Office.AsyncResultStatus.Failed) {
                console.log(result.error.message);
                return;
            }
    
            // Create a signature based on the currently selected From account.
            const name = result.value.displayName;
            const options = { asyncContext: { event: result.asyncContext, name: name }, isInline: true };
            item.addFileAttachmentFromBase64Async(signatureIcon, "signatureIcon.png", options, (result) => {
                if (result.status === Office.AsyncResultStatus.Failed) {
                    console.log(result.error.message);
                    return;
                }
    
                // Add the created signature to the mail item.
                const signature = "<img src='cid:signatureIcon.png'>" + result.asyncContext.name;
                item.body.setSignatureAsync(
                    signature,
                    { asyncContext: result.asyncContext.event, coercionType: Office.CoercionType.Html },
                    addSignatureCallback
                );
            });
        });
    }
    
    // Callback function to add a signature to the mail item.
    function addSignatureCallback(result) {
        if (result.status === Office.AsyncResultStatus.Failed) {
            console.log(result.error.message);
            return;
        }
    
        console.log("Successfully added signature.");
        result.asyncContext.completed();
    }
    
    // IMPORTANT: To ensure your add-in is supported in Outlook, remember to
    // map the event handler name specified in the manifest's LaunchEvent element (with the add-in only manifest)
    // or the "autoRunEvents.events.actionId" property (with the unified manifest for Microsoft 365)
    // to its JavaScript counterpart.
    Office.actions.associate("onNewMessageComposeHandler", onNewMessageComposeHandler);
    Office.actions.associate("onMessageFromChangedHandler", onMessageFromChangedHandler);
    

Importante

Windows: atualmente, as importações não são suportadas no ficheiro JavaScript onde implementa o processamento da ativação baseada em eventos.

Dica

Os suplementos baseados em eventos em execução no Outlook clássico no Windows não executam código incluído nas Office.onReady() funções e Office.initialize . Recomendamos que adicione a lógica de arranque do suplemento, como verificar a versão do Outlook do utilizador, aos processadores de eventos.

Atualizar o ficheiro HTML dos comandos

  1. Na pasta ./src/commands , abra commands.html.

  2. Adicione o seguinte código abaixo da etiqueta de script existente.

    <script type="text/javascript" src="../launchevent/launchevent.js"></script>
    
  3. Salve suas alterações.

Atualizar as configurações webpack config

  1. No diretório de raiz do projeto, abra o ficheiro webpack.config.js .

  2. Localize a plugins matriz no config objeto e adicione o seguinte novo objeto ao início da matriz.

    new CopyWebpackPlugin({
      patterns: [
        {
          from: "./src/launchevent/launchevent.js",
          to: "launchevent.js",
        },
      ],
    }),
    
  3. Salve suas alterações.

Experimente

  1. Execute os seguintes comandos no diretório de raiz do projeto. Quando executa npm starto , o servidor Web local será iniciado (se ainda não estiver em execução) e o suplemento será sideloaded.

    npm run build
    
    npm start
    

    Observação

    Se o suplemento não tiver sido carregado automaticamente em sideload, siga as instruções em Sideload Suplementos do Outlook para testar para fazer sideload manualmente do suplemento no Outlook.

  2. No seu cliente do Outlook preferido, crie uma nova mensagem. Se não tiver uma assinatura predefinida do Outlook configurada, o suplemento adiciona uma à mensagem criada recentemente.

    Uma assinatura de exemplo adicionada a uma mensagem recentemente composta quando uma assinatura predefinida do Outlook não está configurada na conta.

  3. Ative o campo De , se aplicável. Para obter orientações sobre como a ativar, consulte a secção "Por que motivo falta o botão De?" em Alterar a conta utilizada para enviar mensagens de e-mail.

  4. Selecione De e, em seguida, escolha uma conta do Exchange diferente. Em alternativa, introduza manualmente o endereço de e-mail do Exchange ao selecionar De>Outro Endereço Email. É adicionada uma assinatura atualizada à mensagem, substituindo a anterior.

    Um exemplo de uma assinatura atualizada com um logótipo quando a conta no campo De é alterada.

  5. Quando quiser parar o servidor Web local e desinstalar o suplemento, siga as instruções aplicáveis:

    • Para parar o servidor, execute o seguinte comando. Se tiver utilizado npm start, o seguinte comando também deve desinstalar o suplemento.

      npm stop
      
    • Se tiver carregado manualmente o suplemento em sideload, consulte Remover um suplemento sideloaded.

Resolver problemas do suplemento

Para obter orientações sobre como resolver problemas com o suplemento de ativação baseada em eventos, veja Resolver problemas de suplementos baseados em eventos e relatórios de spam.

Implementar em utilizadores

À semelhança de outros suplementos baseados em eventos, os suplementos que utilizam os OnMessageFromChanged eventos e OnAppointmentFromChanged têm de ser implementados pelo administrador de uma organização. Para obter orientações sobre como implementar o suplemento através do Centro de administração do Microsoft 365, consulte a secção "Implementar para utilizadores" em Configurar o suplemento do Outlook para ativação baseada em eventos.

Comportamento e limitações de eventos

Uma vez que os OnMessageFromChanged eventos e OnAppointmentFromChanged são suportados através da funcionalidade de ativação baseada em eventos, o mesmo comportamento e limitações aplicam-se aos suplementos que são ativados como resultado deste evento. Para obter uma descrição detalhada, veja Comportamento e limitações da ativação baseada em eventos.

Além destas características, os seguintes aspetos também se aplicam quando um suplemento é ativado nestes eventos.

  • O OnMessageFromChanged evento só é suportado no modo de composição de mensagens, enquanto o OnAppointmentFromChanged evento só é suportado no modo de composição de compromissos.
  • No Outlook clássico no Windows, apenas o OnMessageFromChanged evento é suportado.
  • Os OnMessageFromChanged eventos e OnAppointmentFromChanged só suportam contas do Exchange. Nas mensagens que estão a ser compostas, a conta do Exchange é selecionada na lista pendente Do campo ou introduzida manualmente no campo. Nos compromissos que estão a ser compostos, a conta do Exchange é selecionada na lista pendente do campo organizador. Se um utilizador mudar para uma conta que não seja do Exchange no campo De ou organizador, o cliente do Outlook limpa automaticamente a assinatura definida pela conta selecionada anteriormente.
  • São suportados cenários de caixa de correio delegada e partilhada.
  • O OnAppointmentFromChanged evento não é suportado nos calendários de grupo do Microsoft 365. Se um utilizador mudar da respetiva conta do Exchange para uma conta de calendário de grupo do Microsoft 365 no campo organizador, o cliente do Outlook limpa automaticamente a assinatura definida pela conta do Exchange.
  • Ao mudar para outra conta do Exchange no campo De ou organizador, os suplementos da conta selecionada anteriormente, se existirem, são terminados e os suplementos associados à conta recentemente selecionada são carregados antes do OnMessageFromChanged evento ou OnAppointmentFromChanged ser iniciado.
  • Email aliases de conta são suportados. Quando um alias para a conta atual é selecionado no campo De ou organizador, o OnMessageFromChanged evento ou OnAppointmentFromChanged ocorre sem recarregar os suplementos da conta.
  • Quando a lista pendente Campo De ou organizador é aberta por engano ou a mesma conta que aparece no campo De ou organizador é reselecionada, o OnMessageFromChanged evento ou OnAppointmentFromChanged ocorre, mas os suplementos da conta não são terminados ou recarregados.

Confira também