Existe um método integrado para acessar um servidor Imap (com SSL) em C # ou existe uma boa biblioteca gratuita?
Existe um método integrado para acessar um servidor Imap (com SSL) em C # ou existe uma boa biblioteca gratuita?
Respostas:
Eu estive procurando por uma solução IMAP por um tempo agora, e depois de tentar algumas, estou indo com AE.Net.Mail .
Você pode baixar o código acessando a guia Código e clicando no pequeno ícone 'Download'. Como o autor não fornece nenhum download pré-compilado, você deve compilá-lo sozinho. (Eu acredito que você pode obtê-lo através do NuGet). Não há mais um .dll no bin / pasta.
Não há documentação, o que considero uma desvantagem, mas fui capaz de preparar isso olhando o código-fonte (yay para open source!) E usando o Intellisense. O código a seguir se conecta especificamente ao servidor IMAP do 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();
Certifique-se de verificar a página do Github para a versão mais recente e alguns exemplos de código melhores.
Na esperança de que seja útil para alguns, você pode querer dar uma olhada nisso:
Embora existam algumas bibliotecas IMAP boas e bem documentadas para .NET disponíveis, nenhuma delas é gratuita para uso pessoal, muito menos para uso comercial ... e eu simplesmente não estava muito satisfeito com as alternativas gratuitas abandonadas que encontrei.
S22.Imap suporta notificações IMAP IDLE, bem como SSL e busca parcial de mensagens. Eu me esforcei para produzir documentação e mantê-la atualizada, porque com os projetos que encontrei, a documentação costumava ser esparsa ou inexistente.
Sinta-se à vontade para fazer uma experiência e me avise se tiver algum problema.
Não há suporte do .NET framework para IMAP. Você precisará usar algum componente de terceiros.
Experimente https://www.limilabs.com/mail , é muito acessível e fácil de usar, também suporta 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);
}
Observe que este é um produto comercial que criei.
Você pode baixá-lo aqui: https://www.limilabs.com/mail .
MailSystem.NET contém todas as suas necessidades para IMAP4. É gratuito e de código aberto.
(Estou envolvido no projeto)
Tente usar a biblioteca: https://imapx.codeplex.com/
Essa biblioteca é gratuita, de código aberto e tem exemplo neste: https://imapx.codeplex.com/wikipage?title=Sample%20code%20for%20get%20messages%20from%20your%20inbox
Eu não tentei sozinho, mas esta é uma biblioteca gratuita que você pode experimentar (não tenho certeza sobre a parte SSL desta aqui):
http://www.codeproject.com/KB/IP/imaplibrary.aspx
Além disso, existe o xemail, que possui parâmetros para SSL:
http://xemail-net.sourceforge.net/
[EDITAR] Se você (ou o cliente) tem dinheiro para um cliente de e-mail profissional, este tópico tem algumas boas recomendações:
Recomendações para um componente .NET para acessar uma caixa de entrada de e-mail