Microsoft Exchange Server ist eine weit verbreitete Kollaborationsplattform, die E-Mail, Kontaktverwaltung, Kalender und andere Dienste bereitstellt. Im vorherigen Beitrag haben wir Ihnen gezeigt, wie Sie in einer .NET-Anwendung programmgesteuert auf E-Mails von MS Exchange Server zugreifen und diese lesen können. Möglicherweise müssen Sie jedoch auch E-Mails von einem Ordner in einen anderen auf Exchange Server kopieren. Um dies zu erreichen, zeigt dieser Artikel, wie Sie E-Mails in einen bestimmten Ordner auf MS Exchange Server in C# .NET verschieben.
- .NET-API zum Verschieben von E-Mails auf Microsoft Exchange Server
- Verschieben Sie vorhandene E-Mails in einen Ordner auf dem MS Exchange Server
- Neue E-Mail in einen Ordner auf MS Exchange Server verschieben
C# .NET API zum Verschieben von E-Mails auf Microsoft Exchange Server
Um die E-Mails auf MS Exchange Server zu verschieben, verwenden wir Aspose.Email for .NET. Die API bietet einfache Möglichkeiten, sich mit MS Exchange Server zu verbinden und damit zu arbeiten. Sie können es über NuGet installieren oder seine DLL herunterladen.
PM> Install-Package Aspose.Email
Verschieben Sie E-Mails in einen Ordner auf MS Exchange Server in C#
Im Folgenden sind die Schritte zum Verschieben von E-Mails in einen bestimmten Ordner auf MS Exchange Server in C# aufgeführt.
- Initialisieren Sie zunächst das Objekt IEWSClient mit Benutzername, Kennwort, Domäne und URI.
- Rufen Sie dann mithilfe der Methode IEWSClient.ListMessages(IEWSClient.MailboxInfo.InboxUri) eine Liste der E-Mail-Nachrichten in einem ExchangeMessageInfoCollection-Objekt ab.
- Durchlaufen Sie danach jede ExchangeMessageInfo-Nachricht und filtern Sie die erforderliche(n) Nachricht(en).
- Rufen Sie dann den URI der zu verschiebenden Nachricht mit der Eigenschaft ExchangeMessageInfo.UniqueUri ab.
- Verschieben Sie schließlich die E-Mail-Nachricht mit der Methode IEWSClient.CopyItem(string URI, IEWSClient.MailboxInfo.DeletedItemsUri).
Das folgende Codebeispiel zeigt, wie eine E-Mail in C# .NET in einen Ordner auf MS Exchange Server verschoben wird.
try
{
// Erstellen Sie eine Instanz der EWSClient-Klasse, indem Sie Anmeldeinformationen angeben
IEWSClient client = EWSClient.GetEWSClient("https://outlook.office365.com/ews/exchange.asmx", "testUser", "pwd", "domain");
// Rufen Sie die ListMessages-Methode auf, um Nachrichteninformationen aus dem Posteingang aufzulisten
ExchangeMessageInfoCollection msgCollection = client.ListMessages(client.MailboxInfo.InboxUri);
// Durchlaufen Sie die Sammlung, um den Nachrichten-URI abzurufen
foreach (ExchangeMessageInfo msgInfo in msgCollection)
{
if (msgInfo.From.Address.Contains("jhon.vick"))
{
String strMessageURI = msgInfo.UniqueUri;
// In einen bestimmten Ordner kopieren
string newMessageUri = client.CopyItem(strMessageURI, client.MailboxInfo.DeletedItemsUri);
}
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
Neue E-Mail in einen Ordner auf MS Exchange Server verschieben
Sie können eine neu erstellte E-Mail auch in einen bestimmten Ordner in MS Exchange Server verschieben. Im Folgenden sind die Schritte zum Ausführen dieses Vorgangs aufgeführt.
- Initialisieren Sie zunächst das Objekt IEWSClient mit Benutzername, Kennwort, Domäne und URI.
- Erstellen Sie dann eine neue Nachricht mit der Klasse MailMessage.
- Rufen Sie danach den URI der E-Mail-Nachricht ab, der von der Methode IEWSClient.AppendMessage(MailMessage) zurückgegeben wird.
- Verschieben Sie schließlich die E-Mail-Nachricht mit der Methode IEWSClient.CopyItem(string URI, IEWSClient.MailboxInfo.OutboxUri).
Das folgende Codebeispiel zeigt, wie Sie eine neue E-Mail-Nachricht in einen Ordner in MS Exchange Server verschieben.
try
{
// Erstellen Sie eine Instanz der EWSClient-Klasse, indem Sie Anmeldeinformationen angeben
IEWSClient client = EWSClient.GetEWSClient("https://outlook.office365.com/ews/exchange.asmx", "testUser", "pwd", "domain");
// Nachricht erstellen
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");
// Nachrichten-URI abrufen
string messageUri = client.AppendMessage(message);
// Nachricht kopieren
string newMessageUri = client.CopyItem(messageUri, client.MailboxInfo.OutboxUri);
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
Holen Sie sich eine kostenlose API-Lizenz
Sie können eine kostenlose temporäre Lizenz erhalten, um Aspose.Email für .NET ohne Evaluierungseinschränkungen zu verwenden.
Fazit
In diesem Artikel haben Sie gelernt, wie Sie E-Mails mit C# in einen bestimmten Ordner in Microsoft Exchange Server verschieben. Außerdem haben Sie gesehen, wie Sie eine neu erstellte E-Mail-Nachricht in einen bestimmten Ordner in Exchange Server verschieben. Außerdem können Sie die Dokumentation durchsuchen, um mehr über Aspose.Email für .NET zu erfahren. Sie können Ihre Fragen auch über unser Forum stellen.