Gibt es eine integrierte Methode für den Zugriff auf einen Imap-Server (mit SSL) in C # oder gibt es eine gute kostenlose Bibliothek?
Gibt es eine integrierte Methode für den Zugriff auf einen Imap-Server (mit SSL) in C # oder gibt es eine gute kostenlose Bibliothek?
Antworten:
Ich habe jetzt schon eine Weile nach einer IMAP-Lösung gesucht und nachdem ich einige ausprobiert habe, gehe ich mit AE.Net.Mail .
Sie können den Code herunterladen, indem Sie auf die Registerkarte Code gehen und auf das kleine Symbol "Herunterladen" klicken. Da der Autor keine vorgefertigten Downloads bereitstellt, müssen Sie diese selbst kompilieren. (Ich glaube, Sie können es über NuGet bekommen). Es befindet sich keine DLL mehr im Ordner bin /.
Es gibt keine Dokumentation, die ich für einen Nachteil halte, aber ich konnte dies verbessern, indem ich mir den Quellcode ansah (yay für Open Source!) Und Intellisense verwendete. Der folgende Code stellt speziell eine Verbindung zum IMAP-Server von Google Mail her:
// Connect to the IMAP server. The 'true' parameter specifies to use SSL
// which is important (for Gmail at least)
ImapClient ic = new ImapClient("imap.gmail.com", "name@gmail.com", "pass",
ImapClient.AuthMethods.Login, 993, true);
// Select a mailbox. Case-insensitive
ic.SelectMailbox("INBOX");
Console.WriteLine(ic.GetMessageCount());
// Get the first *11* messages. 0 is the first message;
// and it also includes the 10th message, which is really the eleventh ;)
// MailMessage represents, well, a message in your mailbox
MailMessage[] mm = ic.GetMessages(0, 10);
foreach (MailMessage m in mm)
{
Console.WriteLine(m.Subject);
}
// Probably wiser to use a using statement
ic.Dispose();
Stellen Sie sicher, dass Sie auf der Github- Seite nach der neuesten Version und einigen besseren Codebeispielen suchen.
In der Hoffnung, dass es für einige nützlich sein wird, möchten Sie vielleicht meinen Versuch ausprobieren:
Es gibt zwar ein paar gute und gut dokumentierte IMAP-Bibliotheken für .NET, aber keine davon ist für den persönlichen, geschweige denn für den kommerziellen Gebrauch kostenlos ... und ich war mit den meist verlassenen kostenlosen Alternativen, die ich gefunden habe, nicht allzu zufrieden.
S22.Imap unterstützt IMAP IDLE-Benachrichtigungen sowie das Abrufen von SSL- und Teilnachrichten. Ich habe einige Anstrengungen unternommen, um die Dokumentation zu erstellen und auf dem neuesten Stand zu halten, da die Dokumentation bei den gefundenen Projekten oft spärlich oder nicht vorhanden war.
Probieren Sie es einfach aus und lassen Sie mich wissen, wenn Sie auf Probleme stoßen!
Es gibt keine .NET Framework-Unterstützung für IMAP. Sie müssen eine Komponente eines Drittanbieters verwenden.
Versuchen Sie https://www.limilabs.com/mail , es ist sehr erschwinglich und einfach zu bedienen, es unterstützt auch SSL:
using(Imap imap = new Imap())
{
imap.ConnectSSL("imap.company.com");
imap.Login("user", "password");
imap.SelectInbox();
List<long> uids = imap.SearchFlag(Flag.Unseen);
foreach (long uid in uids)
{
string eml = imap.GetMessageByUID(uid);
IMail message = new MailBuilder()
.CreateFromEml(eml);
Console.WriteLine(message.Subject);
Console.WriteLine(message.TextDataString);
}
imap.Close(true);
}
Bitte beachten Sie, dass dies ein kommerzielles Produkt ist, das ich erstellt habe.
Sie können es hier herunterladen: https://www.limilabs.com/mail .
MailSystem.NET enthält alle Ihre Anforderungen für IMAP4. Es ist kostenlos und Open Source.
(Ich bin an dem Projekt beteiligt)
Versuchen Sie, die Bibliothek zu verwenden: https://imapx.codeplex.com/
Diese Bibliothek ist kostenlos, Open Source und hat ein Beispiel: https://imapx.codeplex.com/wikipage?title=Sample%20code%20for%20get%20messages%20from%20your%20inbox
Ich habe es selbst nicht ausprobiert, aber dies ist eine kostenlose Bibliothek, die Sie ausprobieren können (ich bin mir über den SSL-Teil in diesem Fall nicht so sicher):
http://www.codeproject.com/KB/IP/imaplibrary.aspx
Es gibt auch Xemail mit Parametern für SSL:
http://xemail-net.sourceforge.net/
[BEARBEITEN] Wenn Sie (oder der Kunde) das Geld für einen professionellen Mail-Client haben, enthält dieser Thread einige gute Empfehlungen:
Empfehlungen für eine .NET-Komponente für den Zugriff auf einen E-Mail-Posteingang