
Microsoft Exchange Server — это широко используемая платформа для совместной работы, которая предоставляет электронную почту, управление контактами, ведение календаря и другие службы. В предыдущем посте мы показали вам, как программно получать доступ и читать электронную почту с сервера MS Exchange в приложении .NET. Однако вам также может понадобиться скопировать электронные письма из одной папки в другую на сервере Exchange. Для этого в этой статье показано, как перемещать электронные письма в определенную папку на сервере MS Exchange в C# .NET.
- .NET API для перемещения электронной почты на сервере Microsoft Exchange
- Переместить существующую электронную почту в папку на сервере MS Exchange
- Переместить новую электронную почту в папку на сервере MS Exchange
С# .NET API для перемещения электронной почты на Microsoft Exchange Server
Для перемещения писем на MS Exchange Server мы будем использовать Aspose.Email для .NET. API предоставляет простые способы подключения и работы с MS Exchange Server. Вы можете установить его через NuGet или скачать его DLL.
PM> Install-Package Aspose.Email
Переместить электронную почту в папку на сервере MS Exchange в С#
Ниже приведены шаги для перемещения сообщений электронной почты в определенную папку на сервере MS Exchange в C#.
- Сначала инициализируйте объект IEWSClient, используя имя пользователя, пароль, домен и URI.
- Затем получите список сообщений электронной почты в объекте ExchangeMessageInfoCollection с помощью метода IEWSClient.ListMessages(IEWSClient.MailboxInfo.InboxUri).
- После этого просмотрите каждое сообщение ExchangeMessageInfo и отфильтруйте нужные.
- Затем получите URI сообщения, которое нужно переместить, используя свойство ExchangeMessageInfo.UniqueUri.
- Наконец, переместите сообщение электронной почты с помощью метода IEWSClient.CopyItem(string URI, IEWSClient.MailboxInfo.DeletedItemsUri).
В следующем примере кода показано, как переместить электронное письмо в папку на сервере MS Exchange Server в C# .NET.
try
{
// Создайте экземпляр класса EWSClient, предоставив учетные данные
IEWSClient client = EWSClient.GetEWSClient("https://outlook.office365.com/ews/exchange.asmx", "testUser", "pwd", "domain");
// Вызовите метод ListMessages, чтобы просмотреть информацию о сообщениях из папки «Входящие».
ExchangeMessageInfoCollection msgCollection = client.ListMessages(client.MailboxInfo.InboxUri);
// Прокрутите коллекцию, чтобы получить URI сообщения.
foreach (ExchangeMessageInfo msgInfo in msgCollection)
{
if (msgInfo.From.Address.Contains("jhon.vick"))
{
String strMessageURI = msgInfo.UniqueUri;
// Скопировать в определенную папку
string newMessageUri = client.CopyItem(strMessageURI, client.MailboxInfo.DeletedItemsUri);
}
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
Переместить новую электронную почту в папку на сервере MS Exchange
Вы также можете переместить вновь созданное электронное письмо в определенную папку на сервере MS Exchange. Ниже приведены шаги для выполнения этой операции.
- Сначала инициализируйте объект IEWSClient, используя имя пользователя, пароль, домен и URI.
- Затем создайте новое сообщение, используя класс MailMessage.
- После этого получите URI сообщения электронной почты, возвращенный методом IEWSClient.AppendMessage(MailMessage).
- Наконец, переместите сообщение электронной почты с помощью метода IEWSClient.CopyItem(string URI, IEWSClient.MailboxInfo.OutboxUri).
В следующем примере кода показано, как переместить новое сообщение электронной почты в папку на сервере MS Exchange.
try
{
// Создайте экземпляр класса EWSClient, предоставив учетные данные
IEWSClient client = EWSClient.GetEWSClient("https://outlook.office365.com/ews/exchange.asmx", "testUser", "pwd", "domain");
// Создать сообщение
MailMessage message = new MailMessage("from@domain.com", "to@domain.com", "EMAILNET-34997 - " + Guid.NewGuid().ToString(), "EMAILNET-34997 Exchange: Copy a message and get reference to the new Copy item");
// Получить URI сообщения
string messageUri = client.AppendMessage(message);
// Скопировать сообщение
string newMessageUri = client.CopyItem(messageUri, client.MailboxInfo.OutboxUri);
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
Получите бесплатную лицензию API
Вы можете получить бесплатную временную лицензию для использования Aspose.Email для .NET без ограничений на пробную версию.
Вывод
В этой статье вы узнали, как перемещать электронные письма в определенную папку на сервере Microsoft Exchange Server с помощью C#. Кроме того, вы видели, как переместить только что созданное сообщение электронной почты в определенную папку на сервере Exchange. Кроме того, вы можете изучить документацию, чтобы узнать больше об Aspose.Email для .NET. Также вы можете задать свои вопросы через наш форум.