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
Abra o ficheiro manifest.json .
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 eOnNewMessageCompose
. 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" } ] }
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 eOnNewMessageCompose
. 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" } ] } ]
- A propriedade "eventos" atribui processadores aos
Dica
- Para saber mais sobre runtimes em suplementos, consulte Runtimes nos Suplementos do Office.
- Para saber mais sobre manifestos para suplementos do Outlook, consulte Manifestos de suplementos do Office.
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.
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.
Na pasta ./src/launchevent , crie um novo ficheiro com o nome launchevent.js.
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
Na pasta ./src/commands , abra commands.html.
Adicione o seguinte código abaixo da etiqueta de script existente.
<script type="text/javascript" src="../launchevent/launchevent.js"></script>
Salve suas alterações.
Atualizar as configurações webpack config
No diretório de raiz do projeto, abra o ficheiro webpack.config.js .
Localize a
plugins
matriz noconfig
objeto e adicione o seguinte novo objeto ao início da matriz.new CopyWebpackPlugin({ patterns: [ { from: "./src/launchevent/launchevent.js", to: "launchevent.js", }, ], }),
Salve suas alterações.
Experimente
Execute os seguintes comandos no diretório de raiz do projeto. Quando executa
npm start
o , 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.
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.
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.
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.
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 oOnAppointmentFromChanged
evento só é suportado no modo de composição de compromissos. - No Outlook clássico no Windows, apenas o
OnMessageFromChanged
evento é suportado. - Os
OnMessageFromChanged
eventos eOnAppointmentFromChanged
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 ouOnAppointmentFromChanged
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 ouOnAppointmentFromChanged
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 ouOnAppointmentFromChanged
ocorre, mas os suplementos da conta não são terminados ou recarregados.