
Genellikle bir e-posta, bir dizi oluşturan birden çok mesajdan (veya yanıttan) oluşur. Microsoft Exchange Server‘da bu ileti dizileri konuşmalar olarak adlandırılır. MS Exchange Server ile programlı olarak çalışırken konuşmalara erişmeniz ve bunları yönetmeniz gerekebilir. Bunu başarmak için, bu makalede Java’da Microsoft Exchange Server’da konuşmaları nasıl bulacağınızı, kopyalayacağınızı, taşıyacağınızı ve sileceğinizi öğreneceksiniz.
- MS Exchange Sunucusunda Konuşmalarla Çalışmak için Java API
- Java’da MS Exchange Sunucusunda Konuşma Bulun
- Java’da MS Exchange Sunucusunda Bir Konuşmayı Kopyalayın
- Java’da MS Exchange Sunucusunda Bir Konuşmayı Taşıma
- Java’da MS Exchange Sunucusunda Bir Konuşmayı Silme
MS Exchange Sunucusunda Konuşmalarla Çalışmak için Java API
Microsoft Exchange Server’daki konuşmalarla çalışmak için Aspose.Email for Java kullanacağız. Java uygulamalarının içinden MS Exchange Server ile çalışmak için bir dizi özellik sağlayan harika bir API’dir. API’yi indirebilir veya aşağıdaki Maven yapılandırmalarını kullanarak yükleyebilirsiniz.
Depo:
<repository>
<id>AsposeJavaAPI</id>
<name>Aspose Java API</name>
<url>http://repository.aspose.com/repo/</url>
</repository>
Bağımlılık:
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-email</artifactId>
<version>22.2</version>
<classifier>jdk16</classifier>
</dependency>
Java’da MS Exchange Sunucusunda Konuşmaları Bulun
Java kullanarak MS Exchange Sunucusundaki bir klasörden konuşmaları bulma adımları aşağıdadır.
- İlk olarak, kullanıcı adı, parola ve etki alanı ile NetworkCredential nesnesini oluşturun ve başlatın.
- Ardından, posta kutusu URI’si ve NetworkCredential nesnesi ile IEWSClient‘ü başlatın.
- IEWSClient.findConversations(IEWSClient.getMailboxInfo().getInboxUri()) yöntemini çağırın ve konuşmaları bir ExchangeConversation dizisinde alın.
- Son olarak, dizideki her ExchangeConversation nesnesi arasında geçiş yapın ve ayrıntılarını alın.
Aşağıdaki kod örneği, Java’daki MS Exchange Server’daki bir klasörden konuşmaların nasıl bulunacağını gösterir.
// Posta kutusu URI'sini, kullanıcı adını, şifreyi, etki alanı bilgilerini ayarla
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);
IEWSClient client = EWSClient.getEWSClient(mailboxUri, credentials);
System.out.println("Connected to Exchange");
// Gelen kutusu klasöründe konuşma öğelerini bulun
ExchangeConversation[] conversations = client.findConversations(client.getMailboxInfo().getInboxUri());
// Tüm konuşmaları göster
for (ExchangeConversation conversation : conversations) {
// Kimlik ve Konu gibi görüşme özelliklerini görüntüleyin
System.out.println("Topic: " + conversation.getConversationTopic());
System.out.println("Flag Status: " + conversation.getFlagStatus());
System.out.println();
}
Java’da MS Exchange Sunucusunda Bir Konuşmayı Kopyalayın
Konuşmaları bir klasörden diğerine de kopyalayabilirsiniz. Java’daki Exchange Server’ın gelen kutusundaki silinmiş öğeler klasörüne konuşmaların nasıl kopyalanacağına bir göz atalım.
- İlk olarak, kullanıcı adı, parola ve etki alanı ile NetworkCredential nesnesini oluşturun ve başlatın.
- Ardından, posta kutusu URI’si ve NetworkCredential nesnesi ile IEWSClient‘i başlatın.
- IEWSClient.findConversations(IEWSClient.getMailboxInfo().getInboxUri())) yöntemini çağırın ve konuşmaları bir ExchangeConversation dizisinde alın.
- Dizideki her ExchangeConversation nesnesi arasında geçiş yapın ve gerekli olanları filtreleyin.
- Son olarak, IEWSClient.copyConversationItems(ExchangeConversation.getConversationId(), IEWSClient.getMailboxInfo().getDeletedItemsUri()) yöntemini kullanarak konuşmayı kopyalayın.
Aşağıdaki kod örneği, Java kullanılarak MS Exchange Server’da bir konuşmanın nasıl kopyalanacağını gösterir.
// Posta kutusu URI'sini, kullanıcı adını, şifreyi, etki alanı bilgilerini ayarla
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);
IEWSClient client = EWSClient.getEWSClient(mailboxUri, credentials);
System.out.println("Connected to Exchange");
// Gelen kutusu klasöründe konuşma öğelerini bulun
ExchangeConversation[] conversations = client.findConversations(client.getMailboxInfo().getInboxUri());
// Tüm görüşmeleri göster
for (ExchangeConversation conversation : conversations) {
System.out.println("Topic: " + conversation.getConversationTopic());
// Bazı koşullara göre konuşma öğesini kopyalayın
if (conversation.getConversationTopic().contains("test email")) {
client.copyConversationItems(conversation.getConversationId(), client.getMailboxInfo().getDeletedItemsUri());
System.out.println("Copied the conversation item to another folder");
}
}
Java’da MS Exchange Sunucusunda Bir Konuşmayı Taşıma
Önceki bölümde, konuşmaları bir klasörden diğerine kopyaladık. Ancak bazı durumlarda, bir görüşmeyi belirli bir klasöre taşımanız gerekebilir. Java’da MS Exchange Server’da bir sohbeti taşımak için adımlar aşağıdadır.
- İlk olarak, kullanıcı adı, parola ve etki alanı ile NetworkCredential nesnesini oluşturun ve başlatın.
- Ardından, IEWSClient öğesini posta kutusu URI’si ve NetworkCredential nesnesiyle başlatın.
- IEWSClient.findConversations(IEWSClient.getMailboxInfo().getInboxUri())) yöntemini çağırın ve konuşmaları bir ExchangeConversation dizisinde alın.
- Dizideki her ExchangeConversation nesnesi arasında geçiş yapın ve gerekli olanları filtreleyin.
- Son olarak, IEWSClient.moveConversationItems(ExchangeConversation.getConversationId(), IEWSClient.getMailboxInfo().getDeletedItemsUri()) yöntemini kullanarak görüşmeyi taşıyın.
Aşağıdaki kod örneği, Java kullanılarak MS Exchange Server’da bir konuşmanın nasıl taşınacağını gösterir.
// Posta kutusu URI'sini, kullanıcı adını, şifreyi, etki alanı bilgilerini ayarla
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);
IEWSClient client = EWSClient.getEWSClient(mailboxUri, credentials);
System.out.println("Connected to Exchange");
// Gelen kutusu klasöründe konuşma öğelerini bulun
ExchangeConversation[] conversations = client.findConversations(client.getMailboxInfo().getInboxUri());
// Tüm konuşmaları göster
for (ExchangeConversation conversation : conversations) {
System.out.println("Topic: " + conversation.getConversationTopic());
// Bazı koşullara göre konuşma öğesini taşıyın
if (conversation.getConversationTopic().contains("test email") == true) {
client.moveConversationItems(conversation.getConversationId(), client.getMailboxInfo().getDeletedItemsUri());
System.out.println("Moved the conversation item to another folder");
}
}
Java’da MS Exchange Sunucusunda Bir Konuşmayı Silme
Son olarak, Java’da MS Exchange Server’dan bir konuşmanın nasıl silineceğine bir göz atalım.
- İlk olarak, kullanıcı adı, parola ve etki alanı ile NetworkCredential nesnesini oluşturun ve başlatın.
- Ardından, IEWSClient öğesini posta kutusu URI’si ve NetworkCredential nesnesiyle başlatın.
- IEWSClient.findConversations(IEWSClient.getMailboxInfo().getInboxUri()) yöntemini çağırın ve konuşmaları bir ExchangeConversation dizisinde alın.
- Dizideki her bir ExchangeConversation nesnesi arasında geçiş yapın ve gerekli olanları filtreleyin.
- Son olarak, IEWSClient.deleteConversationItems(ExchangeConversation.getConversationId()) yöntemini kullanarak bir konuşmayı silin.
Aşağıdaki kod örneği, Java’da MS Exchange Server’dan bir konuşmanın nasıl silineceğini gösterir.
// Posta kutusu URI'sini, kullanıcı adını, şifreyi, etki alanı bilgilerini ayarla
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);
IEWSClient client = EWSClient.getEWSClient(mailboxUri, credentials);
System.out.println("Connected to Exchange");
// Gelen kutusu klasöründe konuşma öğelerini bulun
ExchangeConversation[] conversations = client.findConversations(client.getMailboxInfo().getInboxUri());
// Tüm konuşmaları göster
for (ExchangeConversation conversation : conversations) {
System.out.println("Topic: " + conversation.getConversationTopic());
// Bazı koşullara göre konuşma öğesini silin
if (conversation.getConversationTopic().contains("test email") == true) {
client.deleteConversationItems(conversation.getConversationId());
System.out.println("Deleted the conversation item");
}
}
Ücretsiz API Lisansı Alın
Aspose.Email for Java’yı değerlendirme sınırlamaları olmadan kullanmak için ücretsiz geçici lisans alabilirsiniz.
Çözüm
Bu makalede, Java kullanarak Microsoft Exchange Server’da konuşmaları nasıl yöneteceğinizi öğrendiniz. Java’da programlı olarak MS Exchange Sunucusunda bir konuşmayı nasıl bulacağınızı, kopyalayacağınızı, taşıyacağınızı ve sileceğinizi gördünüz. Ayrıca Aspose.Email for Java hakkında daha fazlasını okumak için belgeleri inceleyebilirsiniz. Ayrıca sorularınızı forumumuz aracılığıyla da sorabilirsiniz.