Microsoft Exchange Server의 대화를 스레드의 이메일 메시지 그룹이라고 합니다. 간단히 말해서 이메일과 그에 대한 모든 답장은 대화라고 알려져 있습니다. 이 기사에서는 프로그래밍 방식으로 MS Exchange Server에서 대화를 사용하는 방법을 보여줍니다. 특히 C# .NET의 MS Exchange Server에서 대화를 찾고, 복사하고, 이동하고, 삭제하는 방법을 배웁니다.
- MS Exchange Server에서 대화 작업을 위한 C# .NET API
- C#의 MS Exchange Server에서 대화 찾기
- C#의 MS Exchange Server에서 대화 복사
- C#의 MS Exchange Server에서 대화 이동
- C#의 MS Exchange Server에서 대화 삭제
MS Exchange Server에서 대화 작업을 위한 C# .NET API
Microsoft Exchange Server에서 대화를 관리하기 위해 Aspose.Email for .NET을 사용합니다. 이메일 클라이언트 애플리케이션을 구현하기 위한 다양한 기능을 제공하는 강력한 API입니다. 또한 MS Exchange Server의 다양한 서비스에 원활하게 액세스할 수 있습니다. 다음 명령을 사용하여 API의 DLL을 다운로드하거나 NuGet에서 설치할 수 있습니다.
PM> Install-Package Aspose.Email
C#의 MS Exchange Server에서 대화 찾기
다음은 C#의 MS Exchange Server 폴더에서 대화를 찾는 단계입니다.
- 먼저 사용자 이름, 암호 및 도메인을 사용하여 NetworkCredential 개체를 만들고 초기화합니다.
- 그런 다음 사서함 URI와 NetworkCredential 개체로 IEWSClient를 초기화합니다.
- IEWSClient.FindConversations(IEWSClient.MailboxInfo.InboxUri) 메서드를 호출하고 ExchangeConversation 배열에서 대화를 가져옵니다.
- 마지막으로 배열의 각 ExchangeConversation 개체를 반복하고 세부 정보를 검색합니다.
다음 코드 샘플은 C#에서 MS Exchange Server의 폴더에서 대화를 찾는 방법을 보여줍니다.
string mailboxUri = "https://ex2010/ews/exchange.asmx";
string username = "test.exchange";
string password = "pwd";
string domain = "ex2010.local";
NetworkCredential credentials = new NetworkCredential(username, password, domain);
// MS Exchange 서버에 연결
IEWSClient client = EWSClient.GetEWSClient(mailboxUri, credentials);
Console.WriteLine("Connected to Exchange");
// 받은편지함에서 대화 가져오기
ExchangeConversation[] conversations = client.FindConversations(client.MailboxInfo.InboxUri);
// 모든 대화 표시
foreach (ExchangeConversation conversation in conversations)
{
// Id 및 Topic과 같은 대화 속성 표시
Console.WriteLine("Topic: " + conversation.ConversationTopic);
Console.WriteLine("Flag Status: " + conversation.FlagStatus.ToString());
Console.WriteLine();
}
C#의 MS Exchange Server에서 대화 복사
복잡한 코드를 작성하지 않고도 한 폴더에서 다른 폴더로 대화를 복사할 수도 있습니다. 시연을 위해 C# .NET에서 받은 편지함에서 Exchange Server의 지운 편지함 폴더로 대화를 복사하는 방법을 살펴보겠습니다.
- 먼저 사용자 이름, 암호 및 도메인을 사용하여 NetworkCredential 개체를 생성하고 초기화합니다.
- 그런 다음 사서함 URI와 NetworkCredential 개체로 IEWSClient를 초기화합니다.
- IEWSClient.FindConversations(IEWSClient.MailboxInfo.InboxUri) 메서드를 호출하고 ExchangeConversation 배열에서 대화를 가져옵니다.
- 배열의 각 ExchangeConversation을 반복하고 필요한 항목을 필터링합니다.
- 마지막으로 IEWSClient.CopyConversationItems(ExchangeConversation.ConversationId, client.MailboxInfo.DeletedItemsUri) 메서드를 사용하여 대화를 복사합니다.
다음 코드 샘플은 C# .NET을 사용하여 MS Exchange Server에서 대화를 복사하는 방법을 보여줍니다.
string mailboxUri = "https://ex2010/ews/exchange.asmx";
string username = "test.exchange";
string password = "pwd";
string domain = "ex2010.local";
NetworkCredential credentials = new NetworkCredential(username, password, domain);
// MS Exchange 서버에 연결
IEWSClient client = EWSClient.GetEWSClient(mailboxUri, credentials);
Console.WriteLine("Connected to Exchange");
// 대화 받기
ExchangeConversation[] conversations = client.FindConversations(client.MailboxInfo.InboxUri);
foreach (ExchangeConversation conversation in conversations)
{
Console.WriteLine("Topic: " + conversation.ConversationTopic);
// 일부 조건에 따라 대화 항목 복사
if (conversation.ConversationTopic.Contains("test email") == true)
{
client.CopyConversationItems(conversation.ConversationId, client.MailboxInfo.DeletedItemsUri);
Console.WriteLine("Copied the conversation item to another folder");
}
}
C#의 MS Exchange Server에서 대화 이동
이전 섹션에서는 한 폴더에서 다른 폴더로 대화를 복사했습니다. 그러나 경우에 따라 대화를 특정 폴더로 이동해야 할 수도 있습니다. 다음은 C# .NET의 MS Exchange Server에서 대화를 이동하는 단계입니다.
- 먼저 사용자 이름, 암호 및 도메인을 사용하여 NetworkCredential 개체를 만들고 초기화합니다.
- 그런 다음 사서함 URI와 NetworkCredential 개체로 IEWSClient를 초기화합니다.
- IEWSClient.FindConversations(IEWSClient.MailboxInfo.InboxUri) 메서드를 호출하고 ExchangeConversation 배열에서 대화를 가져옵니다.
- 배열의 각 ExchangeConversation을 반복하고 필요한 항목을 필터링합니다.
- 마지막으로 IEWSClient.MoveConversationItems(ExchangeConversation.ConversationId, client.MailboxInfo.DeletedItemsUri) 메서드를 사용하여 대화를 이동합니다.
다음 코드 샘플은 C# .NET을 사용하여 MS Exchange Server에서 대화를 이동하는 방법을 보여줍니다.
string mailboxUri = "https://ex2010/ews/exchange.asmx";
string username = "test.exchange";
string password = "pwd";
string domain = "ex2010.local";
NetworkCredential credentials = new NetworkCredential(username, password, domain);
// MS Exchange 서버에 연결
IEWSClient client = EWSClient.GetEWSClient(mailboxUri, credentials);
Console.WriteLine("Connected to Exchange");
// 대화 받기
ExchangeConversation[] conversations = client.FindConversations(client.MailboxInfo.InboxUri);
foreach (ExchangeConversation conversation in conversations)
{
Console.WriteLine("Topic: " + conversation.ConversationTopic);
// 특정 조건에 따라 대화 항목 이동
if (conversation.ConversationTopic.Contains("test email") == true)
{
client.MoveConversationItems(conversation.ConversationId, client.MailboxInfo.DeletedItemsUri);
Console.WriteLine("Moved the conversation item to another folder");
}
}
C#의 MS Exchange Server에서 대화 삭제
마지막으로 C#의 MS Exchange Server에서 대화를 삭제하는 방법을 살펴보겠습니다.
- 먼저 사용자 이름, 암호 및 도메인을 사용하여 NetworkCredential 개체를 만들고 초기화합니다.
- 그런 다음 사서함 URI와 NetworkCredential 개체로 IEWSClient를 초기화합니다.
- 그런 다음 IEWSClient.FindConversations(IEWSClient.MailboxInfo.InboxUri) 메서드를 호출하고 ExchangeConversation 배열에서 대화를 가져옵니다.
- 배열의 각 ExchangeConversation을 반복하고 필요한 항목을 필터링합니다.
- 마지막으로 IEWSClient.DeleteConversationItems(ExchangeConversation.ConversationId) 메서드를 사용하여 대화를 삭제합니다.
다음 코드 샘플은 C# .NET의 MS Exchange Server에서 대화를 삭제하는 방법을 보여줍니다.
string mailboxUri = "https://ex2010/ews/exchange.asmx";
string username = "test.exchange";
string password = "pwd";
string domain = "ex2010.local";
NetworkCredential credentials = new NetworkCredential(username, password, domain);
// MS Exchange 서버에 연결
IEWSClient client = EWSClient.GetEWSClient(mailboxUri, credentials);
Console.WriteLine("Connected to Exchange");
// 대화 받기
ExchangeConversation[] conversations = client.FindConversations(client.MailboxInfo.InboxUri);
foreach (ExchangeConversation conversation in conversations)
{
Console.WriteLine("Topic: " + conversation.ConversationTopic);
// 특정 조건에 따라 대화 항목 삭제
if (conversation.ConversationTopic.Contains("test email") == true)
{
client.DeleteConversationItems(conversation.ConversationId);
Console.WriteLine("Deleted the conversation item");
}
}
무료 API 라이선스 받기
평가 제한 없이 Aspose.Email for .NET을 사용할 수 있는 무료 임시 라이선스를 얻을 수 있습니다.
결론
이 문서에서는 C#을 사용하여 Microsoft Exchange Server에서 대화를 관리하는 방법을 배웠습니다. C#에서 프로그래밍 방식으로 MS Exchange Server에서 대화를 찾고, 복사하고, 이동하고, 삭제하는 방법을 살펴보았습니다. 또한 문서를 탐색하여 .NET용 Aspose.Email에 대해 자세히 알아볼 수 있습니다. 또한 포럼을 통해 질문할 수 있습니다.