Existe-t-il une méthode intégrée pour accéder à un serveur Imap (avec SSL) en C # ou existe-t-il une bonne bibliothèque gratuite?
Existe-t-il une méthode intégrée pour accéder à un serveur Imap (avec SSL) en C # ou existe-t-il une bonne bibliothèque gratuite?
Réponses:
Je cherchais une solution IMAP depuis un certain temps maintenant, et après en avoir essayé quelques-unes, je suis allé avec AE.Net.Mail .
Vous pouvez télécharger le code en allant dans l'onglet Code et en cliquant sur la petite icône «Télécharger». Comme l'auteur ne fournit aucun téléchargement pré-construit, vous devez le compiler vous-même. (Je pense que vous pouvez l'obtenir via NuGet). Il n'y a plus de .dll dans le dossier bin /.
Il n'y a pas de documentation, ce que je considère comme un inconvénient, mais j'ai été en mesure de résoudre ce problème en regardant le code source (yay pour l'open source!) Et en utilisant Intellisense. Le code ci-dessous se connecte spécifiquement au serveur IMAP de Gmail:
// 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();
Assurez-vous de consulter la page Github pour la dernière version et de meilleurs exemples de code.
Dans l'espoir que cela sera utile à certains, vous voudrez peut-être jeter un œil à mon essai:
Bien qu'il existe quelques bonnes bibliothèques IMAP bien documentées pour .NET disponibles, aucune d'entre elles n'est gratuite pour un usage personnel, sans parler d'un usage commercial ... et je n'étais tout simplement pas satisfait des alternatives gratuites pour la plupart abandonnées que j'ai trouvées.
S22.Imap prend en charge les notifications IMAP IDLE ainsi que SSL et la récupération partielle des messages. J'ai déployé des efforts pour produire de la documentation et la maintenir à jour, car avec les projets que j'ai trouvés, la documentation était souvent rare ou inexistante.
N'hésitez pas à l'essayer et faites-moi savoir si vous rencontrez des problèmes!
Il n'y a pas de prise en charge du framework .NET pour IMAP. Vous devrez utiliser un composant tiers.
Essayez https://www.limilabs.com/mail , c'est très abordable et facile à utiliser, il prend également en charge 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);
}
Veuillez noter qu'il s'agit d'un produit commercial que j'ai créé.
Vous pouvez le télécharger ici: https://www.limilabs.com/mail .
MailSystem.NET contient tout ce dont vous avez besoin pour IMAP4. C'est gratuit et open source.
(Je suis impliqué dans le projet)
Essayez d'utiliser la bibliothèque: https://imapx.codeplex.com/
Cette bibliothèque est gratuite, open source et a un exemple à ceci: https://imapx.codeplex.com/wikipage?title=Sample%20code%20for%20get%20messages%20from%20your%20inbox
Je ne l'ai pas essayé moi-même, mais c'est une bibliothèque gratuite que vous pouvez essayer (je ne suis pas si sûr de la partie SSL sur celle-ci):
http://www.codeproject.com/KB/IP/imaplibrary.aspx
En outre, il existe xemail, qui a des paramètres pour SSL:
http://xemail-net.sourceforge.net/
[EDIT] Si vous (ou le client) avez de l'argent pour un client de messagerie professionnel, ce fil de discussion a quelques bonnes recommandations: