Adicionar e remover endereços de email da Lista de Remetentes Bloqueados usando o EWS no Exchange

Descubra como usar a API Gerenciada do EWS ou o EWS para adicionar endereços de email e removê-los da Lista de Remetentes Bloqueados.

A Lista de Remetentes Bloqueados nas opções junk Email do usuário fornece uma maneira de mover todas as mensagens de email de remetentes especificados para a pasta Junk Email. Você pode habilitar sua API Gerenciada do EWS ou aplicativo EWS para adicionar endereços de email ou removê-los da Lista de Remetentes Bloqueados.

Observe que uma mensagem do endereço de email deve existir na caixa de correio do usuário para que você possa adicionar o endereço de email ou removê-lo da Lista de Remetentes Bloqueados. O método de API Gerenciada do ExchangeService.MarkAsJunk EWS e a operação MarkAsJunk EWS usam uma coleção de IDs de item. As IDs do item na coleção indicam mensagens na caixa de correio para a qual o status do lixo eletrônico deve ser alterado.

Você pode usar os cmdlets Get-MailboxJunkEmailConfiguration e Set-MailboxJunkEmailConfiguration Exchange Management Shell para acessar diretamente a Lista de Remetentes Bloqueados.

Adicione um endereço de email ou remova-o da Lista de Remetentes Bloqueados usando a API Gerenciada do EWS

Para adicionar o remetente de uma mensagem de email à Lista de Remetentes Bloqueados, use o método MarkAsJunk e defina o parâmetro isJunk como true. Para remover o remetente de uma mensagem de email da Lista de Remetentes Bloqueados, defina o parâmetro isJunk como false.

O exemplo a seguir mostra como usar o método MarkAsJunk para alterar o status de lixo eletrônico de uma mensagem.

private static void MarkMessageAsJunk(ExchangeService service, ItemId messageId, bool isJunk, bool moveItem)
{
    List<ItemId> junkItemIds = new List<ItemId>();
    junkItemIds.Add(messageId);
    ServiceResponseCollection<MarkAsJunkResponse> responseCollection = null;
    try
    {
        // If isJunk is true, the sender of the email message is added to 
        // the Blocked Senders List. If isJunk is false, the sender is removed
        // from the list (if present).
        responseCollection = service.MarkAsJunk(junkItemIds, isJunk, moveItem);
    }
    catch (ServiceResponseException ex)
    {
        Console.WriteLine("Error marking item as junk: {0}", ex.ErrorCode);
        return;
    }
    foreach (MarkAsJunkResponse response in responseCollection)
    {
        if (response.Result == ServiceResult.Success)
        {
            Console.WriteLine("Successfully marked message as {0}junk.", isJunk ? "": "NOT ");
            if (moveItem)
            {
                Console.WriteLine("New item ID: {0}", response.MovedItemId.ToString());
            }
        }
        else
        {
            Console.WriteLine("[{0}]: {1}", response.Result.ToString(),
                response.ErrorCode.ToString());
        }
    }
}

Adicionar um endereço de email ou removê-lo da Lista de Remetentes Bloqueados usando o EWS

A solicitação SOAP do EWS a seguir marca um item como lixo, definindo o atributo IsJunk no elemento MarkAsJunk como true. Ele também move a mensagem para a pasta Junk Email definindo o atributo MoveItem no elemento MarkAsJunk como true.

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:m="https://schemas.microsoft.com/exchange/services/2006/messages" 
    xmlns:t="https://schemas.microsoft.com/exchange/services/2006/types" 
    xmlns:soap="https://schemas.xmlsoap.org/soap/envelope/">
  <soap:Header>
    <t:RequestServerVersion Version="Exchange2013" />
  </soap:Header>
  <soap:Body>
    <m:MarkAsJunk IsJunk="true" MoveItem="true">
      <m:ItemIds>
        <t:ItemId Id="AAMkADg1OWUwODcyLTg4M2MtNDAyMS05YjI0LTI5ZGM5OTU4Njk3YwBGAAAAAADPriAxh444TpHj2GoQxWQNBwAN+VjmVZl5Rq1ymCq5eFKOAAAAAAENAAAN+VjmVZl5Rq1ymCq5eFKOAAAAAAEuAAA=" 
            ChangeKey="CQAAABYAAAAN+VjmVZl5Rq1ymCq5eFKOAAAAAADi" />
      </m:ItemIds>
    </m:MarkAsJunk>
  </soap:Body>
</soap:Envelope>

A resposta SOAP do EWS a seguir mostra a resposta bem-sucedida. O elemento MovedItemId na resposta contém a ID do item para o item depois que ele foi movido.

<?xml version="1.0" encoding="utf-8"?>
<s:Envelope xmlns:s="https://schemas.xmlsoap.org/soap/envelope/">
  <s:Header>
    <h:ServerVersionInfo MajorVersion="15" MinorVersion="0" MajorBuildNumber="712" MinorBuildNumber="22" Version="V2_3" 
        xmlns:h="https://schemas.microsoft.com/exchange/services/2006/types" 
        xmlns="https://schemas.microsoft.com/exchange/services/2006/types" 
        xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" />
  </s:Header>
  <s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <m:MarkAsJunkResponse xmlns:m="https://schemas.microsoft.com/exchange/services/2006/messages" 
        xmlns:t="https://schemas.microsoft.com/exchange/services/2006/types">
      <m:ResponseMessages>
        <m:MarkAsJunkResponseMessage ResponseClass="Success">
          <m:ResponseCode>NoError</m:ResponseCode>
          <m:MovedItemId Id="AAMkADg1OWUwODcyLTg4M2MtNDAyMS05YjI0LTI5ZGM5OTU4Njk3YwBGAAAAAADPriAxh444TpHj2GoQxWQNBwAN+VjmVZl5Rq1ymCq5eFKOAAAAAAEbAAAN+VjmVZl5Rq1ymCq5eFKOAAAE59DIAAA="
              ChangeKey="CQAAABYAAAAN+VjmVZl5Rq1ymCq5eFKOAAAE59E+" />
        </m:MarkAsJunkResponseMessage>
      </m:ResponseMessages>
    </m:MarkAsJunkResponse>
  </s:Body>
</s:Envelope>

Confira também