использование c# библиотеки .NET для проверки на IMAP обменивается сообщениями с [закрытых] серверов Gmail

У кого-либо есть какой-либо пример кода в этом, использует платформу .NET, которая подключает к googlemail серверам через IMAP SSL для проверки на новые электронные письма?

30
задан Cœur 29 June 2019 в 05:03
поделиться

5 ответов

URL, перечисленный здесь, мог бы представлять интерес для Вас

http://www.codeplex.com/InterIMAP

, который был расширением

http://www.codeproject.com/KB/IP/imaplibrary.aspx?fid=91819&df=90&mpp=25&noise=5&sort=Position&view=Quick&fr=26&select=2562067#xx2562067xx

20
ответ дан lakshmanaraj 27 November 2019 в 23:10
поделиться

Как автор вышеупомянутого проекта я могу сказать, что да он действительно поддерживает SSL.

я в настоящее время работаю над новой версией библиотеки, которая будет абсолютно асинхронной для увеличения скорости, с которой она может взаимодействовать с серверами IMAP.

, Что код, в то время как не завершенный, может быть загружен, наряду с исходной синхронной библиотекой (который также поддерживает SSL), из кода plex сайт, связанный с вышеупомянутым.

17
ответ дан Kiquenet 27 November 2019 в 23:10
поделиться

источник к ssl версии этого здесь: http://atmospherian.wordpress.com/downloads/

1
ответ дан Belliez 27 November 2019 в 23:10
поделиться

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);

    }
}
12
ответ дан Bruno Lopes 27 November 2019 в 23:10
поделиться

.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 .

7
ответ дан 27 November 2019 в 23:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: