mercredi, février 28, 2007

Beta Officielle pour le support du POP / SMTP over HTTP/imode connexion

Bon ben voila comme prévu (et même plutot que prévu) voila la version beta 0.9 du proxy/relay smtp/pop pour l'imode

Requis :eTCL installé et configuré (c'est a dire les associations de fichier .tcl activé dans les options de eTCL)
(la version compacte suffit pour le lancer)
téléchargeable ici http://www.evolane.com/software/etcl/index.html (version pour Windows,mac osx, pocket pc et linux)

Mode d'emploi :

1. lancer IPOP.TCL (vous obtenez une fenetre bleu avec un carré GRIS sous pocket pc ou 2 fenetres sur les autres OS)
NB: pour les utilisateur d'autres opérateur editez IPOP.TCL avec un editeur de texte pour changer les valeurs du proxy HTTP dans les dernieres lignes du fichier pour mettre les parametres du proxy HTTP de votre opérateur. pour les utilisateur imode (Bouygues telecom FR) tout est préconfiguré il y a juste à lancer le daemon IPOP.TCL
ensuite ne fermez pas la fenetre laissez la tourner en tache de fond

2. paramétrage de pocket outlook (ou tout autre client mail en fait, vous adaptez a votre client mail)

imaginons que nous avon comme parametres les valeurs suivantes :

serveur pop : pop.free.fr
user : utilisateur
pass : password
adresse email : utilisateur@free.fr

donc dans les parametres pop de pocket outlook vous mettez :

serveur de courrier entrant pop3 : 127.0.0.1:5110
serveur de courrier sortant smtp : 127.0.0.1:5025

user : utilisateur@pop.free.fr (oui vous metter donc ici votre "serveur" pop de destination donc je résume ustilisateur@serveur)
pass : password

et c'est tout votre client de messagerie est paramétré .

very simple isn't it :-P

Bugs connu dans la 0.9.0 :
si vous avez plusieurs mail dans votre BAL exemple
mail 1 : sujet "mon mail a moi"
mail 2 : sujet "salut c'est moi"
mail 3 : sujet "troisieme mail"
vous avez un bug d'affichage dans les mail vous verrez ceci
mail 1 : sujet "mon mail a moi"
mail 2 : sujet "mon mail a moi"
mail 3 : sujet "mon mail a moi"
mais c'est qu'un bug d'affichage les mails 2 et 3 sont bien les mails prévu (j'ai des bugs dans la releve des entete)

les pièces jointes en réception max 600 ko environ (limitation imode)
en emission je n'ai pas testé l'envoi de pièce jointes (bah oui je veins de finir le smtp a l'instant) mais je pense qu'il vaut mieux pour le moment éviter c'est a vos risques et perils (au pire le mail part pas , erreur ...)

ne sont supporté pour le moment que les mail POP normaux (cad pas de SSL comme Gmail, ou des mails zarbi a la hotmail etc ...)

maintenant le téléchargement :
depuis une connexion normale : Cliquez ici

depuis une connexion imode :
eTCL Cliquez ici
IPOP.TCL Cliquez ici puis renommez en enlevant le .3gp

Voila .
concerant l'utilisation :
ce programme est en donationware c'est a dire que si vous aimez et utilisez mon programme merci de me faire un petit don (je vais mettre un paypal en route) pour m'encourager a continuer (et aussi m'aider a changer de PDA par exemple)

voila bonne utilisation du mail à tous (vu l'heure, je vais enfin aller me coucher la suis HS)


********** UPDATE ******** 02/03/2007 01:25 *******
La fonction TOP (entete) réparée
voila j'ai pas encore codé la possibilité d'envoyer des pieces jointes mais au moins la récupération des entetes est réparée
fini le bug du meme sujet de mail :)

Donc on passe a la version 0.9.1 ;-)

Evolution du POP pour l'imode

Que dire si ce n'est que ça y est le POP fonctionne , il ne me reste plus qu'a coder l'envoi d'email en SMTP

mais voila je m'etait fixé 15 jours , il m'a fallu moins de 48h pour lire dans pocket outlook (et aussi dans mail sur mon mac) un mail depuis une connexion imode en direct (c'est a dire sans VPN rien)

ça fonctionne donc avec succes sur mon Qtek 9100 quel plaisir d'enfin avoir les mails (dumoins en réception pour le moment)

je penses que d'ici la fin de la semaine le SMTP sera ajouté (je suis bien parti alors pourquoi pas) et je mettrais donc en téléchargement le serveur en TCL a lancer et le manuel de paramétrage pour vos mail (rien de bien compliqué :) n'ayez pas peur

voila pour la BONNE nouvelle du jour qui devrait "révolutionner" la vie de tous ceux qui ont un acces WAP ou imode illimité :)

mardi, février 27, 2007

Mail SMTP/POP depuis une connexion imode

J'ai pour le moment décidé de faire une petite pause dans le développement du "proxy" web pour l'imode (il reste a ajouter la gestion des cookies entre autre)

pour me détendre LOL, et surtout à cause de bouygues qui a fermé son service de mail @bouygtel.fr qui etait très pratique (surtout la notification par SMS) j'ai décidé ce mois ci à m'attaquer a l'email pop/smtp depuis une simple connexion imode ou wap.

oui je vois déjà les yeux de tout ceux qui possedent un acces wap ou imode illimité s'illuminer de joie.

En effet je vais ouvrir l'acces au mail en smtp/pop à tous grace a un systeme de client/serveur que je suis en train de developper

pour vous donner une idée de l'etat d'avancement de la chose 50% du projet est déjà achevé sur la gestion du protocole POP3 (en gros toute la partie serveur en PHP) il ne me reste plus qu'a faire la partie "imode" propement dite en TCL (j'estime environ 15 jours maximum de developpement pour achever une premiere version alpha)

ensuite une fois tout achevé il suffira de mettre dans pocket outlook pour les client pocket pc (ou tout client mail en fait) comme serveur 127.0.0.1 port 110 et 127.0.0.1 port 25 pour les protocole pop et smtp et le couple serveur tcl / serveur php vous donnera accès au mails comme si vous aviez un forfait data.

la bonne nouvelle c'est qu'entre le proxy web et ce "proxy" pop je commence a bien me faire la main sur la manipulation des sockets et une fois que j'aurais compris le fonctionnement d'un proxy socket je compte bien si le courage me prends essayer de faire un proxy socket qui passe a travers l'imode histoire d'avoir msn messenger :) mais j'en suis loin
si deja je vous apporte l'email ça sera deja une grande évolution.

Enfin voila quoi , ça avance , et meme plus vite que mes premières estimations.
La il est 1H43 obligé d'aller me coucher pour cause de travail à 8h :( mais je vais me coucher tranquile, la partie PHP est quasiement achevée (enfin le plus gros)

la ou je risque a perdre du temps c'est en TCL vu que ça ne fait que 15 jours que je touche à ce langage :)

je profite de ce post pour lancer un appel a tous les developpeurs qui le souhaitent pour developper des outils pour l'imode et les connexions wap (oui il vas quand meme tot ou tard s'attaquer a msn messenger et les choses en stream style tv et radios) la seule condition c'est qu'en premier ca doit fonctionner sous windows mobile ensuite si possible sous windows et encore mieux multiplateforme (Mac OS X et linux).

(je profite aussi de ce post pour lancer un appel : je me fait chier dans mon boulot actuellement j'estime avoir un niveau en informatique plus que correct donc si vous etes dans le centre de la france et que vous cherchez quelqu'un je suis pret a changer de métier pour revenir a ce que je fait de mieux , tout ce qui est informatique et surtout programmation)

vendredi, février 23, 2007

Version Alpha 1

depuis hier : une petite avancé (support partiel du POST)

voici le source :

---- DEBUT ----

proc proxysocket {{port 3128}} {
global serversock
set serversock [socket -server proxyservsetevent $port]
}

proc proxyservsetevent {s i p} {
fconfigure $s -encoding binary
fconfigure $s -translation binary
fconfigure $s -blocking 0
fileevent $s readable "proxyservfirstevent $s"
}


proc proxyservfirstevent {s} {
global in
# on choppe la requette
gets $s in
# test pour chopper la fin
set test [read $s]
# index
set ind [string last "\n" $test]
# on incremente l'index pour ne pas avoir le retour chariot
incr ind 1
# on met la requette post dans une variable
set postquery [string range $test $ind end]
# essai
set l1 [split [lindex [split $in \n] 0] " "]
set command [lindex $l1 0]
set url [lindex $l1 1]
set proto [lindex $l1 2]

# on imprime dans la console tcl
puts "request : $in"
switch $command {
GET {
set h [http::geturl $url -command "proxyfeedpage $s"]
fileevent $s readable "proxyservnextevent $s"
}
POST {
puts "Post value : $postquery"
set h [http::geturl $url -command "proxyfeedpage $s" -query $postquery ]
fileevent $s readable "proxyservnextevent $s"
}
}
}

proc proxyservnextevent {s} {
# set in [read $s]
gets $s in
}

proc proxygeturl {s h} {
}

proc proxyfeedpage {s h} {
puts $s [http::data $h]
flush $s
proxyclosepage $s $h
}

proc proxyclosepage {s h} {
http::cleanup $h
close $s
}


proc proxyinit {} {
package require http
::http::config -useragent "portalmmm/2.0 N500i(c20;TB)"
::http::config -proxyhost 62.201.129.241
::http::config -proxyport 5080
proxysocket 3128

}

console show
proxyinit

---- FIN ----

cependant pour une raison qui m'echappe les appels des midlets plantent (opera mini) pourtant ca appelle bien mon proxy , mais les requettes posts semble etre differentes des requettes standard "variable=valeur&variable2=valeur2" ...

du coup je suis pour le moment dans une impasse , en attendant ce "proxy" est deja une bonne base de developpement

jeudi, février 22, 2007

nouveau projet en cours

ça fait un moment que je n'ai pas ecrit alors histoire de donner des nouvelles voici le projet en cours de developpement (d'ailleurs ceux qui veulent se joindre à moi sont les bien venu)

1. description du Projet :
un proxy http qui a pour seul but de changer à la volée l'user agent dans les requettes et de relayer le tout vers un autres proxy (donc dans le cas qui nous concerne : changer l'user agent en celui d'un Nec N500i et relayer les requettes vers le proxy imode)
mais pourquoi donc ? tout simplement pour eviter de patcher quoique ce soit et surtout sur pocket pc en passant par ce proxy tous les applets http (opera mini, google maps, mig33 msn messenger) fonctionneront comme si on avait un forfait data.
pour ce projet, je voulais un langage simple d'utilisation, freeware, et multiplateforme et j'ai trouvé le TCL ( Le site officiel et ici La version pocket PC )

2. Etat d'avancement du projet
pour le moment le proxy fonctionne pour les requette GET, il reste a développer la gestion des requettes POST

3.le code dans son etat actuel :

--- DEDUT ---

proc proxysocket {{port 3128}} {
global serversock
set serversock [socket -server proxyservsetevent $port]
}

proc proxyservsetevent {s i p} {
fconfigure $s -encoding binary
fconfigure $s -translation binary
fconfigure $s -blocking 0
fileevent $s readable "proxyservfirstevent $s"
}


proc proxyservfirstevent {s} {
global in
# on choppe la requette
# set in [read $s]
gets $s in
set test [read $s]
set l1 [split [lindex [split $in \n] 0] " "]
set command [lindex $l1 0]
set url [lindex $l1 1]
set proto [lindex $l1 2]
# set test [lindex $l1 3]


# on imprime dans la console tcl
puts "socket number $s"
puts "request : $in"
puts "method : $command"
puts "--------------------"
puts $test
puts "===================="

switch $command {
GET {
set h [http::geturl $url -command "proxyfeedpage $s"]
fileevent $s readable "proxyservnextevent $s"
}
POST {
# CODE A DEVELOPPER ICI POUR LE POST DANS L EXEMPLE ON ENVOI UNE VARIABLE
# NOMME VARIABLE QUI A POUR VALEUR : VALEUR
set h [http::geturl $url -command "proxyfeedpage $s" -query "variable=valeur" ]
fileevent $s readable "proxyservnextevent $s"
}
}
}

proc proxyservnextevent {s} {
# set in [read $s]
gets $s in
}

proc proxygeturl {s h} {
}

proc proxyfeedpage {s h} {
puts $s [http::data $h]
flush $s
proxyclosepage $s $h
}

proc proxyclosepage {s h} {
http::cleanup $h
close $s
}


proc proxyinit {} {
package require http
::http::config -useragent "portalmmm/2.0 N500i(c20;TB)"
::http::config -proxyhost 62.201.129.241
::http::config -proxyport 5080
proxysocket 3128

}

console show
proxyinit


--- FIN ---

voila donc pour le moment ou j'en suis mais ce " proxy " n'est qu'une base de developpement
je pense qu'il est faisable de faire un "proxy" relais pour le protocole SMTP/POP mais ca sera quand celui la sera fini


si vous etes developpeur et que ce projet vous interesse vous pouvez me contacter sur msn messenger à : beboxos AT ifrance.com (attention c'est un email a spam donc uniquement par msn messenger je ne releve jamais cet email)

en esperant avoir un peu d'aide.

vous verrez l' eTCL est un langage tres simple a manipuler et qui permet de faire de bon programmes qui fonctionnent sur linux, windows, mac OS X, windows mobile etc ...