Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1747 connectés 

  FORUM HardWare.fr
  Programmation
  Python

  [Python] Communication avec un serveur (pop)

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Python] Communication avec un serveur (pop)

n°480603
vanilla
datoune's revival
Posté le 08-08-2003 à 00:47:40  profilanswer
 

Bonjour,
Je souhaite réaliser un script python qui check ma boite aux lettres. J'ai jamais programmé réseau/socket alors soyez indulgent  :o  
 
En fait, je sais pas trop par où commencer. Je connais les commandes pour dialoguer avec un serveur pop via telnet (USER, PASS, LIST, etc) mais je ne sais pas trop par où commencer (en fait, si je vais me servir de ces commandes ou pas...)
 
Je suppose qu'il faut déjà établir la connexion au serveur pop.
 

Code :
  1. import socket, sys
  2. HOST = '80.67.180.74'
  3. PORT = 110
  4. mySocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  5. try:
  6. mySocket.connect((HOST, PORT))
  7. except socket.error:
  8. print "Connection failed"
  9. sys.exit()
  10. print "Connection etablished"

 
 
(il s'agit du serveur pop.tuxfamily.org)
 
Bon je suis content, puisque :
 
$ python pop.py
Connection etablished
 
 :D  
 
Reste à savoir arriver à s'identifier et tout ça ? est ce qu(on peut lui envoyer "USER vanilla" dans la gueule ?
J'ai besoin d'un peu d'aide !


---------------
Membre du Front de Libération de Datoune | Soutenez le FLD | A Tribute To Datoune
mood
Publicité
Posté le 08-08-2003 à 00:47:40  profilanswer
 

n°480605
Taz
bisounours-codeur
Posté le 08-08-2003 à 01:07:26  profilanswer
 

tu penses pas que ce problème a été programmé il y a des années... http://www.python.org/doc/current/ [...] oplib.html

n°480610
vanilla
datoune's revival
Posté le 08-08-2003 à 01:11:18  profilanswer
 

Je n'en savais rien. Merci quand même.


Message édité par vanilla le 08-08-2003 à 01:11:27

---------------
Membre du Front de Libération de Datoune | Soutenez le FLD | A Tribute To Datoune
n°482191
vanilla
datoune's revival
Posté le 09-08-2003 à 23:04:34  profilanswer
 

J'obiens ça sur le serveur pop qd je me connecte à telnet et que je demande la liste des mails.
 
+OK POP3 clients that break here, they violate STD53.
 
 :??:


---------------
Membre du Front de Libération de Datoune | Soutenez le FLD | A Tribute To Datoune
n°482193
Taz
bisounours-codeur
Posté le 09-08-2003 à 23:08:39  profilanswer
 

>>> import poplib
>>> p=poplib.POP3("pop.free.fr" )
>>> p
<poplib.POP3 instance at 0x816b654>
>>> p.getwelcome()
'+OK <9213.1060463253@pop1-1.free.fr>'

je vois pas le problème

n°482214
vanilla
datoune's revival
Posté le 09-08-2003 à 23:40:41  profilanswer
 

Le problème c'est que le serveur pop.tuxfamily.org refuse la requête 'list', mais pas pop.free.fr
Mais bon, si ça vient du serveur, j'y peux rien.
 
Sinon j'ai fait comme toi et j'arrive pas à envoyer le USER.
 
>>> p.user(vanilla)
Traceback (most recent call last):
  File "<stdin>", line 1, in ?
NameError: name 'vanilla' is not defined
>>>
 
pourtant ya bien :
 
user(username)
    Send user command, response should indicate that a password is required.
 
:??:
 
J'ai essayé avec une autre méthode, cad d'utiliser send() mais je crois que c'est pas le bon truc. :/


Message édité par vanilla le 09-08-2003 à 23:41:40

---------------
Membre du Front de Libération de Datoune | Soutenez le FLD | A Tribute To Datoune
n°482215
Taz
bisounours-codeur
Posté le 09-08-2003 à 23:44:07  profilanswer
 

ben ça doit être une chaîne. chez moi tout marche tres bien

n°482222
vanilla
datoune's revival
Posté le 09-08-2003 à 23:57:38  profilanswer
 

Bizarre ça  [:mlc]


---------------
Membre du Front de Libération de Datoune | Soutenez le FLD | A Tribute To Datoune
n°482227
Taz
bisounours-codeur
Posté le 10-08-2003 à 00:01:41  profilanswer
 

tu le fait exprès ou quoi?
 
 

>>> import poplib
>>> p=poplib.POP3("pop.ifrance.com" )
>>> p.user("bpub" )
'+OK bpub, i need your password'
 
>>> p.pass_("xxxxxxx" )
'+OK bpub maildrop locked and ready'
>>> p.list()
('+OK 37 messages (110161 octets)', ['1 1857', '2 6267', '3 9629', '4 5283', '5 7366', '6 2170', '7 2365', '8 1184', '9 8178', '10 3293', '11 2599', '12 1995', '13 1174', '14 7517', '15 1839', '16 2394', '17 2248', '18 1198', '19 2539', '20 3552', '21 2084', '22 2526', '23 1187', '24 1182', '25 2431', '26 1197', '27 1801', '28 2725', '29 2638', '30 1189', '31 1192', '32 4225', '33 1208', '34 1972', '35 1212', '36 4829', '37 1916'], 324)
 
>>> p.retr(1)
('+OK here comes the message (1857 octets)', ['Received: from 200.78.59.121 [200.78.59.121] by th24.opsion.fr id 200308070443.16a3; Thu, 7 Aug 2003 04:43:24 GMT', 'Content-Transfer-Encoding: 7BIT', 'From: Correlia<Correliary@mail.com>', 'X-Priority: 3', 'Content-Type: text/html; charset=iso-8859-1', 'Subject: Hi there $Filed1', 'Message-Id: <avspq$d6qjk.Correliary@mail.com>', 'To: bpub@ifrance.com', 'X-Sender: Correlia<Correliary@mail.com>', 'X-MSMail-Priority: Normal', 'Received: from mail.com by nq682h8esd9c.mail.com with SMTP for bpub@ifrance.com; Wed, 06 Aug 2003 23:09:57 -0700', 'Importance: Normal', 'Date: Wed, 06 Aug 2003 23:09:57 -0700', '', '<html>', '<head>', '</head>', '<img src="http://216.219.227.69/cgi-bin/open/open.cgi?x=bpub@ifrance.com">', '<body bgcolor="#FFFFFF" text="#000000">', '<div align="center">', '  <table width="500" cellspacing="0" bgcolor="#000066">', '    <tr>', '      <td>', '        <table width="100%" border="0" cellspacing="0">', '          <tr>', '          <td bgcolor="#000066"> ', '              <div align="center"><font face="Arial, Helvetica, sans-serif" color="#FFFFFF"><b><font size="5">Hello ', '                Benoit</font></b></font></div>', '            </td></:VBRPGDTJHXDOXDRFFUMNVTKMKEBTYCGAMISFYBVLHNUOSCFWVPTAHLHTUBMKWTAKTBCJJLLGILKJE>', '          </tr>', '          <tr>', '            <td bgcolor="#FFFFFF"><a href="http://pws.prserv.net/usinet.neway4u/debt/debt2.htm"><img src="http://4thebetter.gq.nu/ad1.gif" width="500" height="450" border="0"></a></td>', '          </tr>', '        </table>', '      </td>', '    </tr>', '  </table>', '  <a href="http://pws.prserv.net/usinet.neway4u/remove2.htm"><img src="http://pws.prserv.net/usinet.neway4u/1.gif"', '</a></div>', '</body>', '</html>', '', '_____________________________________________________________________', 'Envie de discuter en "live" avec vos amis ? T\xe9l\xe9charger MSN Messenger', 'http://www.ifrance.com/_reloc/m la 1\xe8re messagerie instantan\xe9e de France'], 1857)
 
>>> map(lambda x: p.dele(x), range(1, 36))
['+OK message 1 deleted', '+OK message 2 deleted', '+OK message 3 deleted', '+OK message 4 deleted', '+OK message 5 deleted', '+OK message 6 deleted', '+OK message 7 deleted', '+OK message 8 deleted', '+OK message 9 deleted', '+OK message 10 deleted', '+OK message 11 deleted', '+OK message 12 deleted', '+OK message 13 deleted', '+OK message 14 deleted', '+OK message 15 deleted', '+OK message 16 deleted', '+OK message 17 deleted', '+OK message 18 deleted', '+OK message 19 deleted', '+OK message 20 deleted', '+OK message 21 deleted', '+OK message 22 deleted', '+OK message 23 deleted', '+OK message 24 deleted', '+OK message 25 deleted', '+OK message 26 deleted', '+OK message 27 deleted', '+OK message 28 deleted', '+OK message 29 deleted', '+OK message 30 deleted', '+OK message 31 deleted', '+OK message 32 deleted', '+OK message 33 deleted', '+OK message 34 deleted', '+OK message 35 deleted']
 
>>> p.list()
('+OK 1 messages (1916 octets)', ['37 1916'], 9)
>>> p.dele(37)
'+OK message 37 deleted'
>>> p.list()
('+OK 0 messages (0 octets)', [], 0)
>>> p.stat()
(0, 0)
>>> p.quit()
'+OK Good bye bpub'
>>>

n°482231
vanilla
datoune's revival
Posté le 10-08-2003 à 00:05:53  profilanswer
 

:jap:  
 
J'ai vu qu'aaprès qu'avec les ' ' ça passait.
 
Désolé :/


Message édité par vanilla le 10-08-2003 à 00:06:04

---------------
Membre du Front de Libération de Datoune | Soutenez le FLD | A Tribute To Datoune
mood
Publicité
Posté le 10-08-2003 à 00:05:53  profilanswer
 

n°482233
Taz
bisounours-codeur
Posté le 10-08-2003 à 00:07:24  profilanswer
 

ben la doc dit "string"
 
une_variable
"une chaine"
'une autre chaine'

n°482243
vanilla
datoune's revival
Posté le 10-08-2003 à 00:20:08  profilanswer
 

Exact, j'aurais appris des choses ce soir  :love:  
 
Si je comprends bien,
 


poplib.POP3(HOST)

 
 
revient à :
 


mySocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
 
try:
 mySocket.connect((HOST, PORT))
except socket.error:
 print "Connection to " + HOST + " failed"
 sys.exit()
print "Connection to " + HOST + " etablished"

 
 
 :??:


---------------
Membre du Front de Libération de Datoune | Soutenez le FLD | A Tribute To Datoune
n°482250
Taz
bisounours-codeur
Posté le 10-08-2003 à 00:26:16  profilanswer
 

ben peut être, mais ça doit etre coder en C

n°482267
vanilla
datoune's revival
Posté le 10-08-2003 à 00:40:18  profilanswer
 

ouais sans doute, mais en fait, les librairies servent juste à éconnomiser du tps aux programmeurs  :o


---------------
Membre du Front de Libération de Datoune | Soutenez le FLD | A Tribute To Datoune
n°482268
Taz
bisounours-codeur
Posté le 10-08-2003 à 00:40:55  profilanswer
 

et c'est déjà énorme !!!!!!!!!!!!!!!!!!!!!!

n°482429
vanilla
datoune's revival
Posté le 10-08-2003 à 14:12:03  profilanswer
 

C'est encore moi  :o  
 
J'aurais besoin de savoir s'il existait une commande équivalente à  "grep" en python. Puisque quand je retr un mail, j'aimerais afficher seulement le sujet, et non toutes les informations...
 


---------------
Membre du Front de Libération de Datoune | Soutenez le FLD | A Tribute To Datoune
n°482430
Taz
bisounours-codeur
Posté le 10-08-2003 à 14:13:13  profilanswer
 

ben t'as des regex avec le module re
essaye kodos comme soft pour t'aider à les ecrire

n°482445
vanilla
datoune's revival
Posté le 10-08-2003 à 14:23:31  profilanswer
 

Je suis entrain de voir ça  :jap:  
 
http://www.python.org/doc/current/lib/module-re.html


---------------
Membre du Front de Libération de Datoune | Soutenez le FLD | A Tribute To Datoune

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Python

  [Python] Communication avec un serveur (pop)

 

Sujets relatifs
Problème de serveur SMTP pour envoi de mail en php[Python] Session comme en PHP
[WSAD] ajouter un projet à une config serveurPHP, socket & telnet... se logger sur un serveur distant [SOLVED]
lister les bases et les tables sur SQL serveur via PHP[python]Question de saut de ligne
PHP souci avec l'upload sur un serveur IIScommunication client/serveur avec python
Plus de sujets relatifs à : [Python] Communication avec un serveur (pop)


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR