Die COM API des Windows Mailservers hMailServer bietet die Möglichkeit der Verwaltung über eine COM-Schnittstelle. In C# kann somit der Server administriert werden.
Zunächst muss dafür die ausführbare Datei hmailserver.exe als Referenz hinzugefügt werden.
Im Anschluss kann nun die API verwendet werden:
// Objekt erstellen
Application mailserver = new hMailServer.Application();
// Anmelden mit dem Admin-Accounts
mailserver.Authenticate(username, password);
// Erstellen einer Liste sämtlicher Accounts zu einer bestehenden Domain
Domain domain = mailserver.Domains.get_ItemByName("xyz.net");
List accList = new List();
for (int i = 0; i < domain.Accounts.Count; i++) {
accList.Add(domain.Accounts[i].Address);
}
// Ein Account zu einer bestehenden Domain hinzufügen
Domain domain = mailserver.Domains.get_ItemByName("xyz.net");
Account account = domain.Accounts.Add();
account.Address = "info" + "@" + domain.Name;
account.Save();
Mit Hilfe der Dokumentation für die COM API der Software können zahlreiche Dinge administriert werden.
2 Gedanken zu „hMailServer, COM API und C#“
Hallo Marco,
Main Deutsch ist nicht so gut. Ich komme von Zuid-Africa. Ich hab hmailServer ge-implementiert als ein windows service. Jetzt will ich eine application programmieren die leuft als ein windows service. Diese Application soll connectieren zu main hmailServer service und soll die users controllieren. When schlimste zu slimmsten kommt werde ich die users in den database auf den hmail server gebraucht in meine application rein ziehen. Aber wen dieser COM zum windows service connectieren can von wo ich alles kontrollieren kann dan wuerde es leichter sein. Ist dies moeglich? Excuse my German.
Kind Regards
Konrad
Hello Konrad,
so as I understood you want to manage the users in hmailserver using the COM API and not directly in the database? Is that right?
If so, I think you can use COM. It looks like you only have to adapt the example above where I exemplary output existing users (accounts) of an existing domain and after that add a further user (account) to that domain.
You also can write in english.
Best regards,
Marco