Réception mails

Le
TLB
Bonjour,
J'utilise les fonctions mail de windev.
Pour mes essais je laisse les messages sur le serveur.
Pour lire les mails et ne pas recevoir les anciens j'utilise une
boucle avec les fonctions EmailLitEntête et je compare avec ce que
j'ai déjà.
Je me rends compte que je suis obligé de lire ts les mails du dernier
au premier pour ne prendre que les nouveaux.
Il n'y a aucune raison que l'utilisateur final ne fasse pas pareil.
Résultat, c'est très long !
Mes essais avec foxmail sur la même messagerie sont bluffants : il
"sait" quels sont les messages non lus et va droit sur ces messages et
seulement ces messages là. Il est donc beaucoup plus rapide.

Comment fait-il et surtout comment reproduire ce comportement avec
windev (10) ?

Parmi toutes les fonctions mail de windev, je n'en ai pas trouvé une
qui me donnerait par exemple accès à une sorte d'index des mails sur
le serveur. Je ne peux pas me baser non plus sur les N° des messages.
Rien n'empêche qq de télécharger le message 20 et laisser le 10 via
l'admin à distance qu'il peut utiliser. Il faut donc lire du 20 au 1
pour recevoir le 10 soit 19 lectures pour rien sans compter qu'on
peut avoir des milliers de messages.

Le protocole utilisé est pop3.

Merci d'avance si qq à une solution.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Romain PETIT
Le #14528871
TLB avait soumis l'idée :
Bonjour,



Bonsoir,

Comment fait-il et surtout comment reproduire ce comportement avec
windev (10) ?



Tu devrais pouvoir faire ça avec les fonctions sockets en utilisant les
commandes du protocole.
http://fr.wikipedia.org/wiki/Pop3#Commandes_principales
http://stielec.ac-aix-marseille.fr/cours/caleca/pop3/commandes.htm

Pour avoir une liste de nouveaux messages, il va falloir stocker en
local les identifiants des messages déjà téléchargés et la comparer
avec le résultat de la commande LIST.

A+

--
Romain PETIT
http://cerbermail.com/?O16kfXOFcq
(cliquez sur le lien ci-dessus pour me contacter en privé)
TLB
Le #14528731
On 14 mar, 21:36, Romain PETIT
TLB avait soumis l'idée :

> Bonjour,

Bonsoir,

> Comment fait-il et surtout comment reproduire ce comportement avec
> windev (10) ?

Tu devrais pouvoir faire ça avec les fonctions sockets en utilisant les
commandes du protocole.http://fr.wikipedia.org/wiki/Pop3#Commandes_princip aleshttp://stielec.ac-aix-marseille.fr/cours/caleca/pop3/commandes.htm

Pour avoir une liste de nouveaux messages, il va falloir stocker en
local les identifiants des messages déjà téléchargés et la compa rer
avec le résultat de la commande LIST.

A+

--
Romain PETIThttp://cerbermail.com/?O16kfXOFcq
(cliquez sur le lien ci-dessus pour me contacter en privé)



Bosoir,

Merci pour l'idée mais ,

J'ai testé les commandes pop sur telnet de microsoft et ça marche très
bien et c'est très rapide.
J'ai donc creusé ton idée des sockets, mais là big problème.
Impossible d'obtenir un résultat avec.
J'ai essayé moult combinaisons
Voici une des moutures

login,serveur, mdp sont des chaines

SocketConnecte("toto",110,serveur)
SI ErreurDétectée ALORS
// Erreur lors de la création de socket
Erreur(ErreurInfo())
// Cette application ne peut pas fonctionner sans cette socket

SINON
// jusqu'ici, tvb
// ts les socketecrit renvoient vrais quelques soient les
combinaisons !
// SocketChangeModeTransmission("toto",SocketMarqueurFin,"<EOF>") >
plante la lecture !
SI ErreurDétectée ALORS Erreur(ErreurInfo())
Trace(SocketLit("toto",Faux,1000)) > renvoi vide initialise le canal
selon doc wd
trace(Socketecrit("toto","user "+login)) //
trace(Socketecrit("toto","user "+login<EOF>")) ne marche pas non plus
// trace(Socketecrit("toto","user")
// trace(Socketecrit("toto","login))
trace(Socketecrit("toto","pass "+mdp)) j'ai aussi essayé avec
USER et PASS
// trace(SocketEcrit("toto","pass"))
// trace(SocketEcrit("toto",mdp))
// ch0=socketlit("toto",faux,1000)
Trace(SocketEcrit("toto","STAT"))////<EOF>")
SI ErreurDétectée ALORS
Erreur(ErreurInfo())
SINON
Multitâche(100)
ch0=SocketLit("toto",Faux,1000)
Trace("list/"+ch0+"/") renvoie vide
FIN
FIN
//multitache(1000)
SI SocketExiste("toto") ALORS
SocketFerme("toto")
Info("socket fermee") la socket est fermée, c'est donc qu'elle a bien
été ouverte !
FIN
j'ai aussi essayé en ouvrant un session pop (emailouvresession) mais
ça ne fait rien de plus.
Je n'ai pas trouvé de littérature concernant les sockets pour pop.

Merci si tu as des idées, ou mieux un exemple d'utilisation, car je ne
sais vraiment plus quoi faire.

Tim.
Romain PETIT
Le #14528721
TLB a formulé la demande :

Merci si tu as des idées, ou mieux un exemple d'utilisation, car je ne
sais vraiment plus quoi faire.



Qu'est ce que ça donne avec :
SocketChangeModeTransmission("toto",SocketSansMarqueurFin)
(après le Socketconnect)

--
Romain PETIT
http://cerbermail.com/?O16kfXOFcq
(cliquez sur le lien ci-dessus pour me contacter en privé)
TLB
Le #14528701
On 15 mar, 22:35, Romain PETIT
TLB a formulé la demande :

> Merci si tu as des idées, ou mieux un exemple d'utilisation, car je ne
> sais vraiment plus quoi faire.

Qu'est ce que ça donne avec :
SocketChangeModeTransmission("toto",SocketSansMarqueurFin)
(après le Socketconnect)

--
Romain PETIThttp://cerbermail.com/?O16kfXOFcq
(cliquez sur le lien ci-dessus pour me contacter en privé)



Ca donne un résultat :
La lecture après SocketConnect rend "+Ok connected to pop3 on xxxx"
Le xxxx étant un chiffre (correspond à quoi ?) qui semble différent à
chaque fois.
Les autres ordres de lecture/écriture ne donnent rien.
J'ai essayé d'intercaler
SocketChangeModeTransmission("toto",SocketSansMarqueurFin) entre
chaque commandes sans succès.
J'ai essayé aussi de créer une autre connexion sur le xxxx
(SocketConnecte("tata",xxxx)) mais la connexion est refusée.
TLB
Le #14528691
On 15 mar, 22:35, Romain PETIT
TLB a formulé la demande :

> Merci si tu as des idées, ou mieux un exemple d'utilisation, car je ne
> sais vraiment plus quoi faire.

Qu'est ce que ça donne avec :
SocketChangeModeTransmission("toto",SocketSansMarqueurFin)
(après le Socketconnect)

--
Romain PETIThttp://cerbermail.com/?O16kfXOFcq
(cliquez sur le lien ci-dessus pour me contacter en privé)



J'ai répondu, mais ma réponse s'est semble-t-il perdue.
Au risque qu'il y ait 2 réponses ...

Ok , ça a marché et voilà la réponse à la première lecture apr ès le
SocketConnect "+Ok connected to pop3 on xxxx"
Le xxxx est un chiffre (correspond à quoi ?) qui semble changer à
chaque fois.
Les autres commandes lecture/écriture ne donnent rien.
J'ai essayé d'intercaler
SocketChangeModeTransmission("toto",SocketSansMarqueurFin) sans
succès.
J'ai essayé de créer une autre connexion (SocketConnect("tata",xxxx))
mais la connexion est refusée.
Romain PETIT
Le #14528681
TLB a exprimé avec précision :


Ok , ça a marché et voilà la réponse à la première lecture après le
SocketConnect "+Ok connected to pop3 on xxxx"
Le xxxx est un chiffre (correspond à quoi ?) qui semble changer à
chaque fois.



C'est probablement un identifiant de session unique.
Peu importe, si tu as une réponse positive, tu es en état
"authorization"


Les autres commandes lecture/écriture ne donnent rien.



Il faut envoyer CRLF (RC en W-Langage) à la fin de chaque commande...
Socketecrit("toto","user "+login+RC)


Pour tout le reste, il faut consulter la RFC1939 :
http://abcdrfc.free.fr/rfc-vf/rfc1939.html

A+

--
Romain PETIT
http://cerbermail.com/?O16kfXOFcq
(cliquez sur le lien ci-dessus pour me contacter en privé)
TLB
Le #14528671
On 16 mar, 10:08, Romain PETIT
TLB a exprimé avec précision :

> Ok , ça a marché et voilà la réponse à la première lecture a près le
> SocketConnect "+Ok connected to pop3 on xxxx"
> Le xxxx est un chiffre (correspond à quoi ?) qui semble changer à
> chaque fois.

C'est probablement un identifiant de session unique.
Peu importe, si tu as une réponse positive, tu es en état
"authorization"

> Les autres commandes lecture/écriture ne donnent rien.

Il faut envoyer CRLF (RC en W-Langage) à la fin de chaque commande...
Socketecrit("toto","user "+login+RC)

Pour tout le reste, il faut consulter la RFC1939 :http://abcdrfc.free.fr/r fc-vf/rfc1939.html

A+

--
Romain PETIThttp://cerbermail.com/?O16kfXOFcq
(cliquez sur le lien ci-dessus pour me contacter en privé)



Ok, ça marche mais il fallait savoir !
Dommage que pcsoft n'ait pas daigné ajouter 1 ligne d'aide pour
expliquer ça.
En tout cas, un grand merci pour ton aide précieuse et pour ta
disponibilité.
J'espère que ce fil pourra servir à d'autres que moi.
Tim.
Romain PETIT
Le #14528661
TLB avait écrit le 16/03/2008 :
Ok, ça marche mais il fallait savoir !



Pour le savoir, il faut consulter la rfc...

http://abcdrfc.free.fr/rfc-vf/rfc1939.html

"Les commandes POP3 sont des mot-clefs (indépendants de la casse),
pouvant être suivis d'un ou plusieurs arguments. Toutes les commandes
sont terminées par la séquence CRLF (Retour Chariot, Saut de Ligne
ASCII). Les mot-clefs et les arguments sont formés de caractères ASCII
imprimables. Les mot-clefs et les arguments sont chacun séparés par un
unique caractère espace (SPACE). Les mot-clefs sont formés de trois ou
quatre caractères. Chaque argument peut avoir jusqu'à 40 caractères."


Dommage que pcsoft n'ait pas daigné ajouter 1 ligne d'aide pour
expliquer ça.



Ce n'est pas vraiment leur rôle de documenter les standards...
Par contre, il aurait été judicieux de leur part d'implémenter plus de
fonctions dans leur gestion de fonctions email intégrées...

A+

--
Romain PETIT
http://cerbermail.com/?O16kfXOFcq
(cliquez sur le lien ci-dessus pour me contacter en privé)
TLB
Le #14528641
On 16 mar, 10:52, Romain PETIT
TLB avait écrit le 16/03/2008 :

> Ok, ça marche mais il fallait savoir !

Pour le savoir, il faut consulter la rfc...

http://abcdrfc.free.fr/rfc-vf/rfc1939.html

"Les commandes POP3 sont des mot-clefs (indépendants de la casse),
pouvant être suivis d'un ou plusieurs arguments. Toutes les commandes
sont terminées par la séquence CRLF (Retour Chariot, Saut de Ligne
ASCII). Les mot-clefs et les arguments sont formés de caractères ASCII
imprimables. Les mot-clefs et les arguments sont chacun séparés par un
unique caractère espace (SPACE). Les mot-clefs sont formés de trois ou
quatre caractères. Chaque argument peut avoir jusqu'à 40 caractères. "

> Dommage que pcsoft n'ait pas daigné ajouter 1 ligne d'aide pour
> expliquer ça.

Ce n'est pas vraiment leur rôle de documenter les standards...
Par contre, il aurait été judicieux de leur part d'implémenter plus de
fonctions dans leur gestion de fonctions email intégrées...

A+

--
Romain PETIThttp://cerbermail.com/?O16kfXOFcq
(cliquez sur le lien ci-dessus pour me contacter en privé)



J'ai aussi pensé que pcsost eut pu agrémenter les fonctions standards
emailxxx de façon à faciliter la vie du developpeur moyen tout comme
je trouve les fonctions RTF un peu légères (manque commandes de
surlignage, les tableaux, les liens hypertextes, les puces etc ...).
Je les trouve décidément trop loin de la réalité. Ceci dit, le produ it
reste bon quand même !
Manifestement je n'ai pas assez cherché puisque pas trouvé cette rfc
si bien faite, raison de plus pour remercier des gens comme toi qui
n'hésitent pas à investir du temps pour aider.
Entre parenthèse, y a-t-il une méthode pour dénicher ce genre d'info
ou faut-il simplement faire chauffer google ou autre moteur de
recherche ?

Tim
Romain PETIT
Le #14528621
TLB a formulé la demande :

Entre parenthèse, y a-t-il une méthode pour dénicher ce genre d'info
ou faut-il simplement faire chauffer google ou autre moteur de
recherche ?



Le principal dans les recherches est de trouver les bons mots clé.
Ici par exemple, dans google : "protocole" "POP" suffit..
2ème lien : wikipedia puis les liens vers la rfc en bas

A+

--
Romain PETIT
http://cerbermail.com/?O16kfXOFcq
(cliquez sur le lien ci-dessus pour me contacter en privé)
Publicité
Poster une réponse
Anonyme