Checker l'arrivée d'un mail sur un serveur. [C++] - Programmation
Marsh Posté le 17-07-2002 à 14:18:44
bah, tu te connect sur le serveur (port 110) et apres tu joue avec le protocol pop3, qui doit etre décrit un peu partout
Marsh Posté le 17-07-2002 à 14:27:32
En fait c'est soit sur un serveur machine (pas sur le web), soit en local, pour l'instant je vais faire ca en local. Y a des fonctions qui checkent si un mail est arrive (dans outlook par ex ?). Je pense pas que le pop3 puisque m'aider ici.
Marsh Posté le 17-07-2002 à 14:30:03
si, pop3 peut t'aider !
il faut que tu implémentes un timer, dans lequel tu enverras la fonction LIST à ton serveur.
si tu reçois en réponse +OK => tu as un mail.
y'a un tas de classes qui implémentent pop3 sur
www.codeguru.com
www.codeproject.com
Marsh Posté le 17-07-2002 à 14:31:26
Ok, mais je repete que c'est pas un serveur web, en fait pour l'instant c'est vraiment du local, juste a savoir si outlook (par ex) a recu un mail ou non.
Mais je vais jeter un oeil aux liens merci !
Marsh Posté le 17-07-2002 à 14:32:54
Godbout a écrit a écrit : Ok, mais je repete que c'est pas un serveur web, en fait pour l'instant c'est vraiment du local, juste a savoir si outlook (par ex) a recu un mail ou non. Mais je vais jeter un oeil aux liens merci ! |
vois pas ce que tu veux faire exactement....
tu veux pas te connecter a un serveur mais plutot surveiller un client mail ? ben dans ce cas t pas couché car faudra bricoler pour chaque client mail existant.....
Marsh Posté le 17-07-2002 à 14:33:22
oui, mais je suppose que tu as installé un serveur SMTP sur ta machine !
à partir de la, local ou pas, c'est le protocole POP3 qui entre en jeu
Marsh Posté le 17-07-2002 à 14:35:49
chrisbk a écrit a écrit : vois pas ce que tu veux faire exactement.... tu veux pas te connecter a un serveur mais plutot surveiller un client mail ? ben dans ce cas t pas couché car faudra bricoler pour chaque client mail existant..... |
Ben on me demande de verifier l'arrivee de mail, puis de traiter les fichiers joints. Faut que ca marche chez tous les clients. Effectivement si faut bricoler pour chaque client mail c'est pas la peine.
Marsh Posté le 17-07-2002 à 14:36:12
Harkonnen a écrit a écrit : oui, mais je suppose que tu as installé un serveur SMTP sur ta machine ! à partir de la, local ou pas, c'est le protocole POP3 qui entre en jeu |
J'ai installe outlook, ca repond a la question ?
Marsh Posté le 17-07-2002 à 14:36:55
Harkonnen a écrit a écrit : si, pop3 peut t'aider ! il faut que tu implémentes un timer, dans lequel tu enverras la fonction LIST à ton serveur. si tu reçois en réponse +OK => tu as un mail. y'a un tas de classes qui implémentent pop3 sur www.codeguru.com www.codeproject.com |
ah mais dans ce cas si le gars vide pas ces mails entre tps il te signalera deux fois l'arrivée d'un nouveau message .
donc le mieux c de faire LIST, recuperer le nb de messages, puis faire pour chaque message un TOP pour recup le message ID. reste plus qu'a stocker les message ID des message ayant deja déclencher la sonnette "nouveau mail" et roule simone !
Marsh Posté le 17-07-2002 à 14:37:22
Godbout a écrit a écrit : J'ai installe outlook, ca repond a la question ? |
c un client ca, pas un serveur
Marsh Posté le 17-07-2002 à 14:38:52
chrisbk a écrit a écrit : c un client ca, pas un serveur |
Ouais mais j'ai pas besoin d'un serveur ?
Marsh Posté le 17-07-2002 à 14:39:39
Godbout a écrit a écrit : Ouais mais j'ai pas besoin d'un serveur ? |
ah ben si
tu va les chercher ou tes mails ? il faut que ton prog se connecte sur le serveur de mail (le meme que tu a donner a outlook quand tu l'as conf)
Marsh Posté le 17-07-2002 à 14:41:07
chrisbk a écrit a écrit : ah ben si tu va les chercher ou tes mails ? il faut que ton prog se connecte sur le serveur de mail (le meme que tu a donner a outlook quand tu l'as conf) |
Ben ouais mais ca va changer en fonction des clients ca (pas clients mail hein), donc faut que je demande a l'utilisateur de rentrer sa configuration niveau serveur smtp et pop3 ?
Marsh Posté le 17-07-2002 à 14:41:16
chrisbk a écrit a écrit : ah mais dans ce cas si le gars vide pas ces mails entre tps il te signalera deux fois l'arrivée d'un nouveau message . donc le mieux c de faire LIST, recuperer le nb de messages, puis faire pour chaque message un TOP pour recup le message ID. reste plus qu'a stocker les message ID des message ayant deja déclencher la sonnette "nouveau mail" et roule simone ! |
c'était un exemple hein, j'ai pas approfondi
mais tu as quand meme raison, il faut effacer les messages par DELE une fois qu'ils sont reçus
Marsh Posté le 17-07-2002 à 14:42:37
Godbout a écrit a écrit : Ben ouais mais ca va changer en fonction des clients ca (pas clients mail hein), donc faut que je demande a l'utilisateur de rentrer sa configuration niveau serveur smtp et pop3 ? |
mais non, ça sert a quoi que pop3 existe si tout le monde doit configurer différemment ?
ton serveur SMTP, tu le configures normalement, puis tu configures tes clients de telle sorte qu'ils récupèrent le courrier sur ce serveur
Marsh Posté le 17-07-2002 à 14:42:51
Godbout a écrit a écrit : Ben ouais mais ca va changer en fonction des clients ca (pas clients mail hein), donc faut que je demande a l'utilisateur de rentrer sa configuration niveau serveur smtp et pop3 ? |
juste pop
pop3 = recup de msg
smtp = envoi de msg
tu leur demande serveur + port
Marsh Posté le 17-07-2002 à 14:45:37
Harkonnen a écrit a écrit : mais non, ça sert a quoi que pop3 existe si tout le monde doit configurer différemment ? ton serveur SMTP, tu le configures normalement, puis tu configures tes clients de telle sorte qu'ils récupèrent le courrier sur ce serveur |
Chaque client a son propre serveur.
Marsh Posté le 17-07-2002 à 14:46:35
Godbout a écrit a écrit : Chaque client a son propre serveur. |
y'a malcompréhension la
le serveur change, mais le protocole reste le meme
tu demande juste l'adresse du serveur + son port au cas ou ce ne serait pas le 110 standart
Marsh Posté le 17-07-2002 à 14:47:12
chrisbk a écrit a écrit : juste pop pop3 = recup de msg smtp = envoi de msg tu leur demande serveur + port |
ok.
Marsh Posté le 17-07-2002 à 14:51:57
chrisbk a écrit a écrit : y'a malcompréhension la le serveur change, mais le protocole reste le meme tu demande juste l'adresse du serveur + son port au cas ou ce ne serait pas le 110 standart |
vivi ca c'est ok
Tiens par exemple on a un antivirus au taf qui checke les mails toutes les demi heures, et a chaque fois qu'on recoit une update depuis la norvege, l'antivirus choppe le mail, installe l'update, et efface le mail.
Donc il utiliserait ce que vous me dites ?
Marsh Posté le 17-07-2002 à 14:56:05
je vois pas comment il pourrait faire autrement
Marsh Posté le 17-07-2002 à 14:56:25
Mais pkoi on recoit quand meme ce mail dans outlook alors si l'antivirus le choppe ?
Marsh Posté le 17-07-2002 à 15:00:20
Putain c'est complique
En plus je vais tester les mfc, alors c'est encore plus complique
Marsh Posté le 17-07-2002 à 15:02:11
mais non c pas compliqué !
j'ai déja écrit ce genre de logiciel, ça se fait hyper rapidement en plus !!
Marsh Posté le 17-07-2002 à 15:06:11
Ben merde alors
Putain les MFC je suis quand meme assez largue
m'enfin bon je cherche
Marsh Posté le 17-07-2002 à 15:07:18
Harkonnen a écrit a écrit : mais non c pas compliqué ! j'ai déja écrit ce genre de logiciel, ça se fait hyper rapidement en plus !! |
Harko, you're my God. But I still need to practice (rotten joke inside).
Marsh Posté le 17-07-2002 à 15:08:00
Pas vraiment dur les MFC, et si vraiment tu es largué, tu peux tjs t'inspirer du code proposé.
Sinon recherche sur SourceForge, y'a bien une lib qui implémente pop3
Marsh Posté le 17-07-2002 à 15:08:35
Cherrytree a écrit a écrit : Harko, you're my God. But I still need to practice (rotten joke inside). |
Marsh Posté le 17-07-2002 à 15:11:04
Harkonnen a écrit a écrit : Pas vraiment dur les MFC, et si vraiment tu es largué, tu peux tjs t'inspirer du code proposé. Sinon recherche sur SourceForge, y'a bien une lib qui implémente pop3 |
J'vais essayer de m'y mettre un peu plus. Pour la lib pop3 je prefere eviter, histoire de capter un peu mieux.
Marsh Posté le 17-07-2002 à 15:37:42
En fait il va y avoir un pb si le logiciel client type outlook telecharge les messages avant que j'aille les chopper sur le serveur.
En fait je crois que c'est pas tres possible ce qu'on me demande de faire
Marsh Posté le 17-07-2002 à 15:47:58
mais non, la commande LIST te dit si des nouveaux messages sont apparus.
ensuite, pour récupérer les messages, il faut utiliser RETR et enfin DELE pour les effacer.
si ton logiciel envoie à intervalles réguliers une commande LIST uniquement, y'a pas de pb, à condition de stocker le nombre de messages depuis le dernier check.
tu fais ensuite la différence, et hop ! tu as le nombre de messages reçus
Marsh Posté le 17-07-2002 à 16:01:55
oui d'accord, mais a mon avis mon outlook qui est programme pour verifier toutes les minutes les nouveaux messages doit, lui, faire un RETR + DELE.
(sinon les mfc je suis en train de lire un bouquin, ca a l'air sympatoche)
Marsh Posté le 17-07-2002 à 16:04:32
Godbout a écrit a écrit : oui d'accord, mais a mon avis mon outlook qui est programme pour verifier toutes les minutes les nouveaux messages doit, lui, faire un RETR + DELE. (sinon les mfc je suis en train de lire un bouquin, ca a l'air sympatoche) |
il me semble qu'une option d'Outlook permet de ne pas effacer les messages du serveur
Marsh Posté le 17-07-2002 à 16:10:59
Harkonnen a écrit a écrit : il me semble qu'une option d'Outlook permet de ne pas effacer les messages du serveur |
J'me suis pose la question aussi, mais bon faudrait faire ca chez tous les clients
Marsh Posté le 17-07-2002 à 16:24:00
Godbout a écrit a écrit : J'me suis pose la question aussi, mais bon faudrait faire ca chez tous les clients |
Attends, y'a un truc que je pige pas la !
Tu veux écrire un logiciel qui checke les mails à intervalles.. en quoi tu as besoin d'Outlook ?
Marsh Posté le 17-07-2002 à 16:27:27
pis toi t pas obligé d'effacer les message du serveur, hein ?
(bon j'installes mes drivers paske la 16 couleurs je tiens plus )
Marsh Posté le 17-07-2002 à 16:30:21
Ben le client a outlook d'ouvert pour son taf, moi je dois checker si une commande arrive par email, si elle arrive je la traite.
Donc apparemment pour voir si une commande arrive je dois aller la chercher sur le serveur, le pb c'est que la commande est peut etre deja passee dans outlook.
En fait le client recoit un fichier joint dans un email, et je dois traiter ce fichier, mais automatiquement.
Effectivement j'ai pas besoin d'outlook apparemment, mais si la personne l'utilise alors ca risque de faire merder la recuperation de mail.
Marsh Posté le 17-07-2002 à 16:30:57
chrisbk a écrit a écrit : pis toi t pas obligé d'effacer les message du serveur, hein ? (bon j'installes mes drivers paske la 16 couleurs je tiens plus ) |
nan mais si outlook ou n'importe quel logiciel verifie avant moi, lui il va les d/l et les effacer.
Marsh Posté le 17-07-2002 à 14:16:21
Faut que je checke toutes les 1/2 heures si un mail est arrivé, et récupérer l'objet du mail.
Quelqu'un a des infos la dessus ?
---------------
Super.