ошибка при использовании c # mail.dll - PullRequest
0 голосов
/ 17 июня 2009

Я пытаюсь прочитать учетную запись Gmail, чтобы получить данные GPS, которые отправляются туда (в тексте электронного письма) с мобильного телефона (мой телефон)

using (Pop3Client cl = new Pop3Client())
            {
                cl.UserName = "crash893";
                cl.Password = "password";
                cl.ServerName = "pop.gmail.com";
                cl.AuthenticateMode = Pop3AuthenticateMode.Pop;
                cl.Ssl = true;
                cl.Authenticate();
                ///Get first mail of my mailbox
                Pop3Message mg = cl.GetMessage(1);  <<<<<<<<<< ERROR
                String MyText = mg.BodyText;
                ///If the message have one attachment
                Pop3Content ct = mg.Contents[0];
                ///you can save it to local disk
                ct.DecodeData("c:\\test.txt");
            }

но я получаю исключение при получении сообщения «получить первое письмо от почтового ящика»

"Higuchi.Net.Pop3.Pop3ConnectException: Pop3 connection is closed
at Higuchi.Net.Pop3.Pop3Client.SendCommand(String inCommand)
at Higuchi.Net.Pop3.Pop3Client.Execute(String inCommand, Boolean inIsMultiLine)
at Higuchi.Net.Pop3.Pop3Client.Execute(Pop3Command inCommand)
at Higuchi.Net.Pop3.Pop3Client.GetMessage(Int64 inMailIndex)"}

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

кто-нибудь знает, почему происходит ошибка

есть ли у кого-нибудь опыт работы с почтой c #, который мог бы указать мне правильное направление для чтения и создания писем, как прочитано и т. Д.

Ответы [ 4 ]

2 голосов
/ 17 июня 2009

кл.порт = 995;

2 голосов
/ 17 июня 2009

Невозможно пометить электронные письма как прочитанные с использованием протокола POP.

Попробуйте использовать IMAP.

1 голос
/ 17 июня 2009
        using (Pop3Client cl = new Pop3Client())
        {
            cl.UserName = "ewgsdssw";
            cl.Password = "sdgwsegw";
            cl.ServerName = "pop.gmail.com";
            cl.AuthenticateMode = Pop3AuthenticateMode.Pop;
            cl.Port = 995;
            cl.Ssl = true;
            cl.Authenticate();
            ///Get first mail of my mailbox
            ///
            int total = Convert.ToInt16(cl.GetTotalMessageCount());

            while (total >= 1)
            {
                Pop3Message mg = cl.GetMessage(total);
                if (mg.Subject == "I am Here")
                {

                    // http://maps.google.com/maps?q=38.89552,-77.43265
                    //(+/- 76 metres.)

                    string location = mg.BodyText;
                    location = location.Replace("http://maps.google.com/maps?q=","~");
                    location = location.Replace("metres.)\r\n\r\n","~");

                    location = location.Split('~')[1];

                    location = location.Replace("(+/- ", ",");
                    location = location.Replace("\r\n", "");


                    string[] data = location.Split(',');
                    string lat = data[0];
                    string lon = data[1];
                    string res = data[2];
                    DateTime time = mg.Date;

                    textBox1.AppendText(string.Format("Lat: {0} LON: {1} Res: {2} TIME: {3}\r\n",lat,lon,res,time.ToString()));

                }

                total--;
            }

        }
0 голосов
/ 17 июня 2009

У меня нет опыта работы с C # Mail, и этот ответ может не помочь, но в прошлом я сталкивался со странностями, когда пытался написать код для отправки / получения электронной почты.

Оказалось, что антивирусное программное обеспечение, на котором мы работали, имело белый список разрешенных .EXE, которые могли устанавливать входящие / исходящие соединения POP3 или SMTP. Есть шанс, что это твоя проблема?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...