2009-06-16 4 views
0

Я пытаюсь читать через учетную запись GMAIL для получения данных GPS, отправляемые там (в тексте электронной почты) из Moble телефона (мой телефон)ошибки при использовании C# mail.dll

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)"} 

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

Кто-нибудь знает, почему его erroring из

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

ответ

1
 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

Вероятно, вы должны сделать полный длинный (не int) и избавиться от Convert.ToInt16. – SLaks

2

Это не представляется возможным отметить электронную почту как чтение с использованием протокола POP.

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

+0

Вы уверены? как выглядит Outlook с помощью pop3? – Crash893

+0

у вас есть простой в использовании бесплатный клиент imap? – Crash893

+0

Outlook не делает это через POP3. Когда вы отмечаете сообщение, прочитанное в Outlook, оно обновляет локальную базу данных. Единственное взаимодействие между Outlook и POP-сервером заключается в том, чтобы загрузить сообщение в первую очередь. – SLaks

0

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

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

Смежные вопросы