Читать весь GMail из C # - PullRequest
       38

Читать весь GMail из C #

0 голосов
/ 13 сентября 2011

Я пытаюсь найти какой-нибудь код, который позволит мне высосать каждое письмо из моей учетной записи Gmail, похоже, что код, который в данный момент используется с помощью Atom Reader, только читает непрочитанные сообщения.

Я хочучитать все, предметы, тело и вложения.

Возможно ли, у кого-нибудь есть рабочий код.

Дэйв

Ответы [ 4 ]

1 голос
/ 13 сентября 2011

То, что вы хотите сделать, - это не простое приложение, которое мы можем помочь вам написать приложение для почтового клиента. Требуется много усилий, чтобы прочитать много статей о том, как работают почтовые клиенты POP3 или IMAP, также вы должны понимать, RFC 1939 и RFC 1081 документы, связанные с этими протоколами.В любом случае для реализации приложения почтового клиента необходимо использовать протоколы IMAP или POP3. Снаружи вы можете обратиться к ним со многими статьями.

SMTP и POP3 Mail Server

Клиент POP3 в C # .NET

И документы RFC:

Протокол почтового отделения

0 голосов
/ 22 августа 2013

Узнайте, как читать информацию из XML, и вы можете получать всю информацию, которую вы хотите в Gmail, из этого канала https://mail.google.com/mail/feed/atom. У меня есть один пример кода ниже, который считывает количество непрочитанных сообщений и читает заголовок и сводку, но Вы можете получить другую информацию, например, от кого, вложения, т. д. Никаких дополнительных библиотек не требуется:)

        try
        {
            System.Net.WebClient objClient = new System.Net.WebClient();
            string response;
            string title;
            string summary;

            //Creating a new xml document
            XmlDocument doc = new XmlDocument();

            //Logging in Gmail server to get data
            objClient.Credentials = new System.Net.NetworkCredential("Email", "Password");
            //reading data and converting to string
            response = Encoding.UTF8.GetString(objClient.DownloadData(@"https://mail.google.com/mail/feed/atom"));

            response = response.Replace(@"<feed version=""0.3"" xmlns=""http://purl.org/atom/ns#"">", @"<feed>");

            //loading into an XML so we can get information easily
            doc.LoadXml(response);

            //nr of emails
            nr = doc.SelectSingleNode(@"/feed/fullcount").InnerText;

            //Reading the title and the summary for every email
            foreach (XmlNode node in doc.SelectNodes(@"/feed/entry"))
            {
                title = node.SelectSingleNode("title").InnerText;
                summary = node.SelectSingleNode("summary").InnerText;
            }

        }
    }
    catch (Exception exe)
    {
         MessageBox.Show("Check your network connection");
    }
0 голосов
/ 13 сентября 2011

Ваша лучшая ставка, как отмечали другие, использует протокол IMAP.Однако обратите внимание, что для реализации Google IMAP требуется безопасное соединение, поэтому речь идет не только о реализации IMAP.

Здесь есть реализация C # здесь , которая также включает безопасное соединениеВещи, но имейте в виду, что в нем довольно много ошибок, связанных с такими вещами, как кодировка заголовка и другие, поэтому будьте готовы исправить несколько ошибок, если вы решите использовать его.

0 голосов
/ 13 сентября 2011

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

Существует множество руководств по C # по использованию / внедрению IMAP, просто Google для них.

...