En clair, utiliser
WapSFR (voir la méthode NiKKrO) pour récupérer et envoyer tous ses mails.
Cette solution s'appuie sur le travail de
BeBox qui a developpé l'outil ipop (
http://mobisit.blogspot.com/).
De profondes modifications ont été faites sur l'outil et j'ai ajouté (en piece jointe de ce post) la partie serveur avec laquel votre iPhone va communiquer.
Pour la V1 de l'outil (fichier archive_v1.zip), si vous ne souhaitez pas installer la partie server, vous pouvez toujours utiliser celui de BeBox (voir son site par la configuration et ce lien
http://forum.frenchiphone.com/index.php/topic,12189.0.html)
Il est à noter 2 points :- La V2 de l'outil (archive_v2.zip) n'est plus compatible avec BeBox
- SSL est supporté, en revanche la communication SSL sera uniquement entre votre serveur et le serveur de mail,
jamais entre votre iPhone et votre serveurMise à jour : Installation à partir d'un repository http://dmaf.free.fr/iphone/rep (DMD iPhone)Le principe est le suivant :- Un daemon écoute sur plusieurs ports (5110, 5025 et 5035) tourne sur l'iPhone
- Ces daemons communiquent en HTTP (via WapSFR ou autre) avec un serveur en lui envoyant les commandes POP3 ou SMTP de l'applications courrier
- Le serveur envoi ces mêmes commandes vers votre serveur de mail (free, gmail, ...)
- Pour savoir quelle est nom du serveur smtp / pop à utiliser, ipopsmtp va utiliser la fin de l'adresse mail : exemple
machine@free.fr => pop.free.fr ou smtp.free.fr
Gestion des cas spécifiques :2 fichiers pop-servers.conf et smtp-servers.conf (dans /WEB-INF/classes) sont utilisés pour reconnaître les serveurs en fonction de l'adresse mail de l'utilisateur.
Si le serveur de mail n'est pas présent alors les règles suivantes s'appliquent (Exemple utilisateur
machine@provider.com) :
- En POP :
le serveur sera : pop.provider.com
l'utilisateur sera : machine
le port du serveur : 110
le serveur ne sera pas accèder en SSL
- En SMTP :
le serveur sera : smtp.provider.com
l'utilisateur sera : machine
le port du serveur : 25
le serveur ne sera pas accèder en SSL
Exemple deconfiguration particulière :Par exemple dans
pop-servers.conf :
hotmail.fr;false;in.izymail.com;110;falsece qui veut dire : pour une adresse se terminant par hotmail.fr (
mon_login@hotmail.fr), il faut se connecter en POP sur le port 110 sur in.izymail.com sans ssl (2ème false) avec le login
mon_login (1er false). Pour se connecter avec le login
mon_login@hotmail.fr, la ligne devrait être :
hotmail.fr;true;in.izymail.com;110;falsePar exemple dans
smtp-servers.conf :
hotmail.fr;false;out.izymail.com;25;false- ce qui veut dire : pour une adresse se terminant par hotmail.fr (
mon_login@hotmail.fr), il faut se connecter en SMTP sur le port 25 sur out.izymail.com sans ssl (2ème false) avec le login
mon_login (1er false). Pour se connecter avec le login
mon_login@hotmail.fr, la ligne devrait être :
hotmail.fr;true;out.izymail.com;25;falseUn fichier
DEBUG dans /WEB-INF/classes permet de lancer la webapp en mode debug si besoin.
Les ports utilisés (modifiables) :- 5110 pour faire du POP3(s)
(il faut mettre un login et un mot de passe)- 5025 pour faire du SMTP(s) sans identification de l'émetteur du mail
(il ne faut pas mettre de login ni de mot de passe)- 5035 pour faire du SMTP(s) avec identification de l'émetteur du mail
(il faut mettre un login et un mot de passe)Ce qui marche :- Reception des mails en POP3 (free, sfr, ...) et POP3s (gmail par exemple)
- Envoi des mails en SMTP (free, sfr, ...) et SMTPs sans identification de l'émetteur du mail
- Envoi des mails en SMTP (free, sfr, ...) et SMTPs avec identification de l'émetteur du mail
Ce qui ne marche pas:- Envoi des mails en SMTPs vers gmail : il y a une erreur à la fin de l'envoi du mail :
451 4.5.0 SMTP protocol violation, see RFC 2821, et je ne sais pas pourquoi => si quelqu'un a une idée.
Les ingrédientsUn iPhone avec :
- Distribution d'iMailSFR disponible dans
DMD iPhone :
http://dmaf.free.fr/iphone/rep (Ajouter ce repository à l'application Installer dans l'iPhone)
- Ulctl ou BossPrefs (préférable)
Un ordinateur accessible depuis internet avec:
- Java 1.4.x ou supérieur sur votre serveur
- Tomcat 5 ou 6 (ou autre moteur de servlet)
L'installation1) Configurer votre iPhone pour avoir accès à internet (Voir méthode NiKKrO pour SFR :
http://forum.frenchiphone.com/index.php/topic,2440.0.html)
2) Installer le package iMailSFR à partir de la source DMD iPhone (voir la partie Les ingrédients) dans votre iPhone
3) Modifier le fichier
/var/mobile/imailsfr/imailsfr.tcl installé par le package iMailSFR et remplacer <mon_ip_server> par votre adresse IP ou votre nom dyndns
4) Configurer un compte mail avec quelques changement pour iMailSFR :
- Lors de la creation d'un nouveau compte, il faut toujours choisir "Autre", même pour Gmail, Yahoo Mail, etc., ceci afin de le personnaliser
- Configurer votre compte de maniére "classique" sauf pour :
- Mettre dans la zone "Nom du serveur" : 127.0.0.1
- Mettre dans la zone "Nom d'Utilisateur" un login sous la forme d'adresse mail par exemple :
machin@free.fr ou
machin@gmail.com - Ne pas configurer votre compte mail en SSL, même pour GMAIL !!!
- Dans la partie "Avancée de votre compte", il faut désactiver SSL
- Mettre le port 5110 pour la reception de courrier
- Mettre le port 5025 pour l'envoi sans identification (comme pour free.fr) ou 5035 pour l'envoi avec identification (comme pour gmail.com)
5) Installer java et tomcat sur votre ordinateur
6) Installer le fichier
email.war dans le répertoire webapps de Tomcat
7) Lancer tomcat et laisser le port par défaut (8080) et vérifier que votre ordinateur est accessible depuis internet
=> lancer safari sur votre iPhone est taper : http://<mon_ip_server>:8080/email, ou <mon_ip_server> correspond à l'adresse IP fourni par votre provider internet (voir étap e 3) ou un nom dns si vous utilisez une solution comme dyndns (
www.dyndns.fr)
=> Hello world devrait s'afficher.
8 ) Lancer ensuite le daemon iMailSFR :
- Soit en utilisant Ulctl :
1) lancer /Library/LaunchDaemons/dmd.apps.iphone.imailsfr.plist avec la commande "load -w"
- ou utiliser BossPrefs (
http://iphone.sleepers.net/repo.xml) :
1) Installer l'application BossPrefs iMailSFR Control à partir de repository
http://dmaf.free.fr/iphone/rep (DMD iPhone)
2) Lancer où arrêter iMailSFR avec BossPrefs
Pour information, le proxy Wap de SFR laisse passer tous ce qui est HTTP sur certains ports.
Votre serveur pourra donc écouter sur le port 80 (HTTP), 443 (HTTPs) ou dans notre cas le port 8080, pour qu'ipopsmtp puisse communiquer avec.
Les sources sont dans le répertoire
/WEB-INF/src de la webapp (email.war)
Bon courage