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

  FORUM HardWare.fr
  Programmation
  C++

  Palm (POL), CNetLibClientStream et protocol SMTP...

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Palm (POL), CNetLibClientStream et protocol SMTP...

n°168374
thejohn
ouaismais
Posté le 29-06-2002 à 12:39:31  profilanswer
 


HELP ME !!!!  :cry:  
 
J'utilise la librairie objet POL (Palm Object Library) afin de réaliser un programme sur Palm qui envoie des mails en utilisant le protocole SMTP.
 
J'ai un sérieux problème avec le code suivant : :pt1cable:  
 
----------------------------------------------------
1  Char temp[100];
2  CNetLibClientStream sock(&nlib, netSocketTypeStream,  
3  netSocketProtoIPTCP, "smtp.freesurf.ch", 25, 9999);
4
5  sock >> temp;   // Authentification of the server
6  FrmCustomAlert(ErreurAlert, temp, "", "" );
7        
8  sock << "HELO [127.0.0.1]";
9  sock >> temp;
10 FrmCustomAlert(ErreurAlert, temp, "", "" );
---------------------------------------------------- :eek2:  
 
Je crée une connexion avec le serveur (ligne 2 et 3), le socket (ligne 5) me renvoie un message comme quoi le serveur est "ready". J'affiche ce message (ligne 6). Ensuite j'envoie la première commande SMTP sur le socket (ligne 8). Puis j'affiche (ligne 9 et 10) le message que le serveur me renvoie. Le problème c'est que je ne reçoit rien du serveur (il devrait m'afficher un message comme quoi il a bien reçut le message). Si je continue d'envoyer les commandes d'envoi d'un mail (RCPT, TO, ...), le mail n'est quand même pas envoyé...
 
Le problème vient peut-être de la chaine envoyée (ligne 8). J'ai déjà essayé de rajouter un CR (\n, aussi en hexa, octal) et/ou un LF (\r), mais rien ne change... Je ne trouve pas de solution qqn, si quelqu'un à une idée ou bien un exemple... :ange:  
 
Bon week end et merci d'avance :sol:


---------------
On a de la chance avec le temps...
mood
Publicité
Posté le 29-06-2002 à 12:39:31  profilanswer
 

n°168619
thejohn
ouaismais
Posté le 30-06-2002 à 19:49:57  profilanswer
 

Toujours pas de réponses...
 
Vous ne comprenez pas mon problème, il est trop compliqué ou ça vous embête de répondre  ;)  
 
Si qqun pouvait m'aider, je lui en serait très reconnaissant...


---------------
On a de la chance avec le temps...
n°168726
gilou
Modérateur
Modzilla
Posté le 01-07-2002 à 03:55:59  profilanswer
 

Suffit de lire la spec:
http://www.cis.ohio-state.edu/cgi-bin/rfc/rfc0821.html
 
Ta chaine devrait etre:
"HELO 127.0.0.1\r\n";  
(tu mets ce qui est necessaire afin que ca se termine par \r\n dans la chaine envoyée).
A+,


Message édité par gilou le 01-07-2002 à 03:56:54

---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°168736
thejohn
ouaismais
Posté le 01-07-2002 à 08:25:47  profilanswer
 

J'ai déjà essayé cette façon de faire (comme tu peux le lire dans mon post), cela ne fonction pas.
 
J'ai aussi envoyé \r et \n en hexadécimal et en octal car dans un exemple utilisant d'autre fonction (pas objet), ils le faissait...


---------------
On a de la chance avec le temps...
n°169341
gilou
Modérateur
Modzilla
Posté le 01-07-2002 à 23:45:39  profilanswer
 

TheJohn a écrit a écrit :

J'ai déjà essayé cette façon de faire (comme tu peux le lire dans mon post), cela ne fonction pas.
 
J'ai aussi envoyé \r et \n en hexadécimal et en octal car dans un exemple utilisant d'autre fonction (pas objet), ils le faissait...




Oui, mais dans ton post, il etait pas clair que tu essayais la bonne combinaison. Avec les caracteres en octal, ca devrait etre OK.
D'autre part, tu avais le numero d'IP entouré par [ ] ce qui etait pas bon, et tertio, si dans ton programme tu utilises 127.0.0.1 comme adresse ip, je serais assez surpris que ca fonctionne.
Tu utilises une autre adresse, et a mis celle là juste a titre d'exemple, je suppose?? ou ton serveur est il aussi sur la meme machine que ton client?
A+,


Message édité par gilou le 01-07-2002 à 23:49:22

---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°169347
thejohn
ouaismais
Posté le 01-07-2002 à 23:57:26  profilanswer
 

Merci de ton aide,
 
J'ai aussi déjà essayé en octal et en hexa sans résultats...
 
J'ai déjà essayé avec et sans [], sans résultats toujours :)  
 
Ensuite l'adresse 127.0.0.1, ca doit jouer car un autre programme qui utilise le protocole SMTP, envoie aussi HELO 127.0.0.1, j'ai aussi essayé avec TelNet et ca fonctionne avec cette adresse...
 
Bref si tu as d'autre idée, je suis toujours preneur
 
Par contre connais-tu cette librairie POL, librairie objet pour Palm???
 
Merci déjà pour tes réfléxions


---------------
On a de la chance avec le temps...
n°169351
gilou
Modérateur
Modzilla
Posté le 02-07-2002 à 00:04:07  profilanswer
 

Au fait, la premiere chose que tu devrais faire, c'est d'envoyer un HELO simple, non suivi de l'adresse IP de ton client:
sock << "HELO\r\n";
Tu devrais alors recevoir une erreur 501 du style:
501 HELO requires domain address
Ce qui indiquera que tu causes effectivement a un serveur de mail dispo (sinon, il y a deja un pb soit avec ta connexion, soit il y a pas de serveur de mail ecoutant la socket ouverte).
Si tu recois l'erreur 501, alors tu peux envoyer ton
socket << "HELO xxx.yyy.zzz.www\r\n";
Ou xxx.yy.zzz.www est l'adresse internet de la machine sur laquelle tourne ton client.
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°169353
gilou
Modérateur
Modzilla
Posté le 02-07-2002 à 00:06:30  profilanswer
 

Citation :

J'ai aussi déjà essayé en octal et en hexa sans résultats...


 
J'avais pas vu que c'etait du C++.
\r\n devraient alors suffire.
 

Citation :

Ensuite l'adresse 127.0.0.1, ca doit jouer car un autre programme qui utilise le protocole SMTP, envoie aussi HELO 127.0.0.1, j'ai aussi essayé avec TelNet et ca fonctionne avec cette adresse...


Non, ca c'est le localhost.
Ca ne doit marcher que si ton client et ton serveur sont sur la meme becane, je pense (mais je suis pas specialiste).
Sinon, il faut utiliser une IP reelle a mon avis.
A+,


Message édité par gilou le 02-07-2002 à 00:07:53

---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°169354
thejohn
ouaismais
Posté le 02-07-2002 à 00:07:52  profilanswer
 

Ok je vais essayer ca demain !!!
 
Mais dans le cas où j'envoie HELO 127.0.0.1\r\n, il devrait normalement aussi me renvoyer un erreur ou qqch, mais il ne me renvoie jamais rien, sauf au début (ready), a devenir fou  :ouch:  :pt1cable:  :??: ...
 
A+


---------------
On a de la chance avec le temps...
n°169361
gilou
Modérateur
Modzilla
Posté le 02-07-2002 à 00:20:38  profilanswer
 

TheJohn a écrit a écrit :

Ok je vais essayer ca demain !!!
 
Mais dans le cas où j'envoie HELO 127.0.0.1\r\n, il devrait normalement aussi me renvoyer un erreur ou qqch, mais il ne me renvoie jamais rien, sauf au début (ready), a devenir fou  :ouch:  :pt1cable:  :??: ...
 
A+




Non:
Le ready est fait au niveau du protocole socket, pas du serveur mail. Le serveur mail se reveille et reponds apres un HELO (ou un EHLO pour un protocole plus avancé), donc tant que tu as pas recu une erreur 501 sur un HELO sans IP, tu ne sais pas vraiment s'il y a un serveur mail a l'ecoute a l'autre bout du socket.
D'ailleurs, l'envoi d'un HELO a vide est une pratique standard.
 
Note que tu as raison, en fait l'adresse IP n' a pas une grande importance dans l'histoire, puisque tout se fait a travers le socket, et localhost devrait etre accepté a priori.
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
mood
Publicité
Posté le 02-07-2002 à 00:20:38  profilanswer
 

n°169362
thejohn
ouaismais
Posté le 02-07-2002 à 00:24:44  profilanswer
 

Mais que penses tu du fait, que quand j'essaye HELO 127.0.0.1 et qu'il me renvoie rien, est-cw qu'avec HELO tout seul, ca va être différent ???
 
Je vais essayer cela demain... ;)
 
Sinon connais tu cette librairie POL ??? :ouch:  
 
 
@+


---------------
On a de la chance avec le temps...
n°169364
thejohn
ouaismais
Posté le 02-07-2002 à 00:25:33  profilanswer
 

Et merci pour ton renseignement à propos du ready...
 
@+


---------------
On a de la chance avec le temps...
n°169369
gilou
Modérateur
Modzilla
Posté le 02-07-2002 à 00:32:36  profilanswer
 

TheJohn a écrit a écrit :

Mais que penses tu du fait, que quand j'essaye HELO 127.0.0.1 et qu'il me renvoie rien, est-cw qu'avec HELO tout seul, ca va être différent ???
 
Je vais essayer cela demain... ;)
 
Sinon connais tu cette librairie POL ??? :ouch:  
 
 
@+




Oui, avec HELO a vide, il doit te renvoyer un message d'erreur 501 (= commande SMTP avec bad parameters).
C'est la technique standard en fait pour savoir si un serveur mail est a l'ecoute sur le port ouvert.
Si tu recoit rien au bout d'un certain delai (timeout, a gerer par toi, sans doute, tu peux considerer qu'il y a pas de serveur mail a l'ecoute sur ce port, et qu'il est inutile de continuer).
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°169534
thejohn
ouaismais
Posté le 02-07-2002 à 10:50:38  profilanswer
 

J'ai essayé d'envoyer HELO\r\n et HELO\015\012, sans résultats  
 
Je commence fortement à douter de ma connexion
 
@+
 
 


---------------
On a de la chance avec le temps...
n°169569
gilou
Modérateur
Modzilla
Posté le 02-07-2002 à 11:13:10  profilanswer
 

TheJohn a écrit a écrit :

J'ai essayé d'envoyer HELO\r\n et HELO\015\012, sans résultats  
 
Je commence fortement à douter de ma connexion
 
@+
 
 
 




HELO sans erreur renvoyée?
Alors apparement le serveur de mail ecoute pas la ou tu te connectes.

  • Es tu sur qu'il y a un serveur de mail sur cette becane?
  • Es tu sur qu'il ecoute ce port et pas un autre?
  • Es tu sur qu'il utilise SMTP comme protocole et pas un truc zarbi? (cas rare, mais on sait jamais)

Si tu as acces a la machine du serveur de mail en admin, ca te donne quoi au niveau des logs?
A+,


Message édité par gilou le 02-07-2002 à 11:14:22

---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°169588
gilou
Modérateur
Modzilla
Posté le 02-07-2002 à 11:27:45  profilanswer
 

En fait, je viens de verifier la RFC.
Normalement, lors de l'etablissement de la connexion, avant l'envoi de ton HELO, tu dois recevoir un  
220 <SP> domain-name <SP> Service ready <CRLF>
C'est ce que tu indiquais par "ready" dans une de tes reponses?
A+,
 


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°169593
thejohn
ouaismais
Posté le 02-07-2002 à 11:30:57  profilanswer
 

Il y a bien un serveur de mail car je l'utilise déjà pour ma messagerie électronique
 
Il écoute bien sur ce port car avec un telnet sur le port 25, le serveur répond et permet d'envoyer un mail
 
Il utilise bien SMTP...
 
Nous n'avons pas accès au serveur de mail..
 
Merci
 
@+
 


---------------
On a de la chance avec le temps...
n°169598
gilou
Modérateur
Modzilla
Posté le 02-07-2002 à 11:35:42  profilanswer
 

Je viens verifier l'existence du serveur SMTP en direct:

Code :
  1. >telnet freesurfmail.sunrise.ch 25
  2. 220 freesurfmail.sunrise.ch ESMTP Service (6.0.053) ready
  3. >>HELO
  4. 250 freesurfmail.sunrise.ch Missing required domain name in HELO, defaulted to your IP address [64.121.62.87]
  5. >>QUIT
  6. 221 freesurfmail.sunrise.ch QUIT
  7. Connection to host lost.


Le serveur est OK. Donc c'est ta connexion qui pose probleme.
A+,
PS: j'ai modifié mon IP dans la reponse.
PPS: Nos mails se sont croisés.


Message édité par gilou le 02-07-2002 à 11:36:59

---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°169709
thejohn
ouaismais
Posté le 02-07-2002 à 12:25:13  profilanswer
 

Merci, je vais donc vérifier ma connexion...
 
Mais la librairie que j'utilise est tellement mal documentée (POL --> librairie objet pour Palm), si tu connais ???
 
@+


---------------
On a de la chance avec le temps...
n°169828
gilou
Modérateur
Modzilla
Posté le 02-07-2002 à 14:35:04  profilanswer
 

TheJohn a écrit a écrit :

Merci, je vais donc vérifier ma connexion...
 
Mais la librairie que j'utilise est tellement mal documentée (POL --> librairie objet pour Palm), si tu connais ???
 
@+




Non. Si je devais develloper sous Palm, j'aurais essayé un produit avec un nom allemand pour lequel j'ai vu de la pub dans Dr Dobbs (pas le nom en tete).
Pas de doc en ligne pour POL. Donc j'ai pas d'idée sur ce qui peut deconner.
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --

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

  Palm (POL), CNetLibClientStream et protocol SMTP...

 

Sujets relatifs
[delphi] arguments pour delphi><VB sur palmcomposant Cdonts pour un smtp exterieur!!......
[C] Ecrire un protocol de communicationPalm fichier .PDB
Editeur de texte utilisant le protocol sshQue mettre comme serveur SMTP ?
[ PERL ] envoie de mails et authentification au serveur SMTP ....[Java] et SMTP
Win CE + palm Os ????[LINUX] Lancement automatique via url (protocol)
Plus de sujets relatifs à : Palm (POL), CNetLibClientStream et protocol SMTP...


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