Question

J'essaie de lire un compte Gmail pour obtenir les données GPS envoyées ici (dans le texte d'un e-mail) à partir d'un téléphone mobile (mon téléphone)

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

mais j'obtiens une exception sur le " obtenir le premier message du message de la boîte aux lettres

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

Idéalement, ce que je voudrais faire est d'ouvrir cette page et de lire tous les nouveaux courriels non lus de ce compte pour une ligne d'objet donnée, puis de lire les données dans le corps et de les marquer comme lues

.

est-ce que quelqu'un sait pourquoi son erreur sur

Quelqu'un at-il une expérience avec le courrier c # qui pourrait me diriger dans la bonne direction pour lire et créer des emails lus, etc.

Était-ce utile?

La solution 3

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

        }

Autres conseils

Il n'est pas possible de marquer les e-mails comme lus en utilisant le protocole POP.

Essayez d’utiliser IMAP.

cl.Port = 995;

Je n'ai pas d'expérience avec C # Mail, et cette réponse peut ne pas aider, mais j'ai déjà eu des expériences étranges lorsque j'essayais d'écrire un e-mail contenant du code associé.

En fait, le logiciel antivirus que nous utilisions au travail avait une liste blanche des .EXE autorisés qui pouvaient établir des connexions POP3 ou SMTP entrantes / sortantes. Est-ce que c'est votre problème?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top