Microsoft Exchange Server permite definir regras diferentes para a caixa de entrada, que são aplicadas às mensagens, como mover uma mensagem para uma pasta, excluir uma mensagem, etc. Ao trabalhar com os serviços do Exchange a partir de aplicativos .NET , talvez seja necessário gerenciar as regras da caixa de entrada de forma programática. Neste artigo, você aprenderá como criar e atualizar regras de caixa de entrada no MS Exchange Server em C# .NET.
- API .NET para gerenciar regras de caixa de entrada no Exchange Server
- Criar regras de caixa de entrada no Exchange Server
- Atualizar regras da caixa de entrada no Exchange Server
API .NET para gerenciar regras de caixa de entrada no Exchange Server
Para criar e atualizar regras de caixa de entrada no MS Exchange Server, usaremos Aspose.Email for .NET. A API torna muito mais fácil trabalhar perfeitamente com o MS Exchange Server. Você pode baixar a DLL da API ou instalá-la de NuGet usando o comando a seguir.
PM> Install-Package Aspose.Email
Criar regras de caixa de entrada no Exchange Server em C#
Aspose.Email para .NET usa Exchange Web Services (EWS) para trabalhar com regras de caixa de entrada no Exchange Server. A seguir estão as etapas para criar regras de caixa de entrada no Exchange Server em C#.
- Primeiro, conecte-se ao Exchange Server e obtenha a instância do cliente EWS em um objeto IEWSClient.
- Em seguida, crie um objeto da classe InboxRule.
- Defina o nome da regra usando a propriedade InboxRule.DisplayName.
- Crie uma instância da classe RulePredicates e especifique as condições.
- Atribua a instância RulePredicates à propriedade InboxRule.Conditions.
- Crie uma instância da classe RuleActions e defina as ações.
- Atribua a instância RuleAction à propriedade InboxRule.Actions.
- Finalmente, chame IEWSClient.CreateInboxRule(InboxRule) para criar a regra.
O exemplo de código a seguir mostra como criar uma regra de caixa de entrada no Exchange Server em C#.
// Definir URL, nome de usuário, senha e domínio do serviço Web do Exchange Server
string mailboxURI = "https://ex2010/ews/exchange.asmx";
string username = "test.exchange";
string password = "pwd";
string domain = "ex2010.local";
// Conecte-se ao Exchange Server
NetworkCredential credential = new NetworkCredential(username, password, domain);
IEWSClient client = EWSClient.GetEWSClient(mailboxURI, credential);
Console.WriteLine("Connected to Exchange server");
// Criar uma nova regra
InboxRule rule = new InboxRule();
rule.DisplayName = "Message from client ABC";
// Adicionar condições
RulePredicates newRules = new RulePredicates();
// Definir condição: o assunto contém a string "ABC"
newRules.ContainsSubjectStrings.Add("ABC");
newRules.FromAddresses.Add(new MailAddress("administrator@ex2010.local", true));
rule.Conditions = newRules;
// Adicionar ações
RuleActions newActions = new RuleActions();
newActions.MoveToFolder = "120:AAMkADFjMjNjMmNjLWE3NzgtNGIzNC05OGIyLTAwNTgzNjRhN2EzNgAuAAAAAABbwP+Tkhs0TKx1GMf0D/cPAQD2lptUqri0QqRtJVHwOKJDAAACL5KNAAA=AQAAAA==";
rule.Actions = newActions;
// Criar regra
client.CreateInboxRule(rule);
Atualizar regras de caixa de entrada no Exchange Server em C#
A seguir estão as etapas para buscar e atualizar uma regra de caixa de entrada existente no Exchange Server em C#.
- Primeiro, conecte-se ao Exchange Server e obtenha a instância do cliente EWS em um objeto IEWSClient.
- Em seguida, chame o método IEWSClient.GetInboxRules() para obter todas as regras em uma matriz InboxRule.
- Faça um loop em cada InboxRule na matriz.
- Filtre as regras necessárias com base em algumas condições.
- Atualize as condições ou ações da regra.
- Finalmente, chame o método IEWSClient.UpdateInboxRule(InboxRule) para atualizar a regra de caixa de entrada.
O exemplo de código a seguir mostra como atualizar uma regra de caixa de entrada no MS Exchange Server em C#.
// Definir mailboxURI, nome de usuário, senha e domínio
string mailboxURI = "https://ex2010/ews/exchange.asmx";
string username = "test.exchange";
string password = "pwd";
string domain = "ex2010.local";
// Conecte-se ao Exchange Server
NetworkCredential credential = new NetworkCredential(username, password, domain);
IEWSClient client = EWSClient.GetEWSClient(mailboxURI, credential);
Console.WriteLine("Connected to Exchange server");
// Obter todas as regras da caixa de entrada
InboxRule[] inboxRules = client.GetInboxRules();
// Faça um loop em cada regra
foreach (InboxRule inboxRule in inboxRules)
{
if (inboxRule.DisplayName == "Message from client ABC")
{
// Atualizar regra
inboxRule.Conditions.FromAddresses[0] = new MailAddress("administrator@ex2010.local", true);
client.UpdateInboxRule(inboxRule);
}
}
Obtenha uma licença de API gratuita
Você pode obter uma licença temporária gratuita para usar o Aspose.Email para .NET sem limitações de avaliação.
Conclusão
Neste artigo, você aprendeu como trabalhar com regras de caixa de entrada no Microsoft Exchange Server a partir de aplicativos .NET. Com a ajuda de exemplos de código, você viu como adicionar ou atualizar regras de caixa de entrada no Exchange Server em C#. Além disso, você pode explorar a documentação para ler mais sobre o Aspose.Email para .NET. Além disso, você pode postar suas dúvidas em nosso fórum.