C.Connect()
не вызывается, и это необходимо, поскольку именно здесь вы регистрируете EventHandler, который вызывает this.sender_PageSwap
. Без этого ничего не произойдет.
URL, перечисленный здесь, мог бы представлять интерес для Вас
http://www.codeplex.com/InterIMAP
, который был расширением
Как автор вышеупомянутого проекта я могу сказать, что да он действительно поддерживает SSL.
я в настоящее время работаю над новой версией библиотеки, которая будет абсолютно асинхронной для увеличения скорости, с которой она может взаимодействовать с серверами IMAP.
, Что код, в то время как не завершенный, может быть загружен, наряду с исходной синхронной библиотекой (который также поддерживает SSL), из кода plex сайт, связанный с вышеупомянутым.
источник к ssl версии этого здесь: http://atmospherian.wordpress.com/downloads/
Lumisoft.net содержит код клиента и сервера IMAP, который вы можете использовать.
Я использовал его для загрузки электронной почты из Gmail. Объектная модель не самая лучшая, но она работоспособна, и кажется, что она довольно гибкая и стабильная.
Вот частичный результат моего всплеска использования. Извлекает первые 10 заголовков с конвертами, а затем извлекает полное сообщение:
using (var client = new IMAP_Client())
{
client.Connect(_hostname, _port, _useSsl);
client.Authenticate(_username, _password);
client.SelectFolder("INBOX");
var sequence = new IMAP_SequenceSet();
sequence.Parse("0:10");
var fetchItems = client.FetchMessages(sequence, IMAP_FetchItem_Flags.Envelope | IMAP_FetchItlags.UID,
false, true);
foreach (var fetchItem in fetchItems)
{
Console.Out.WriteLine("message.UID = {0}", fetchItem.UID);
Console.Out.WriteLine("message.Envelope.From = {0}", fetchItem.Envelope.From);
Console.Out.WriteLine("message.Envelope.To = {0}", fetchItem.Envelope.To);
Console.Out.WriteLine("message.Envelope.Subject = {0}", fetchItem.Envelope.Subject);
Console.Out.WriteLine("message.Envelope.MessageID = {0}", fetchItem.Envelope.MessageID);
}
Console.Out.WriteLine("Fetching bodies");
foreach (var fetchItem in client.FetchMessages(sequence, IMAP_FetchItem_Flags.All, false, true)
{
var email = LumiSoft.Net.Mail.Mail_Message.ParseFromByte(fetchItem.MessageData);
Console.Out.WriteLine("email.BodyText = {0}", email.BodyText);
}
}
.NET framework для IMAP не поддерживает. Вам понадобится сторонний компонент.
Попробуйте почтовый компонент Mail.dll , он очень доступный и простой в использовании, он также поддерживает SSL ]:
using(Imap imap = new Imap())
{
imap.ConnectSSL("imap.company.com");
imap.Login("user", "password");
imap.SelectInbox();
List<long> uids = imap.Search(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.Text);
}
imap.Close(true);
}
Обратите внимание, что это коммерческий продукт, который я создал.
Вы можете скачать его здесь: https://www.limilabs.com/mail .