Utiliser checkgmail derrière un proxy

Checkgmail n'aime pas les proxy. Et c'est bien dommage car c'est un exemple outil de notification gmail, capable de signaler un nouveau mail, mais aussi d'en lire le contenu, de le marquer comme lu, etc, sans avoir besoin d'ouvrir un logiciel de messagerie ou un navigateur. Après moult tâtonnements, voici comment j'ai pu le faire fonctionner.

Checkgmail étant un script perl, les symptômes qu'il présentent (erreurs 500 no route to host et 400 bad request) sont valables pour les autres logiciels écrits avec le même langage et qui utilisent le module LWP pour leurs requêtes web :
  • Il interprète mal les variables d'environnement http_proxy et https_proxy
  • Il ignore semble-t-il la variable d'environnement http_proxy (en tout cas dans certaines conditions).
Pour résoudre ces problèmes, il faut :
  • Supprimez le / (slash) à la fin de l'url du proxy (Ubuntu en met un par défaut). Par exemple, mettre "http://monproxy:8000" au lieu de "http://monproxy:8000/"
  • Forcer le proxy http dans le code perl.
Mode d'emploi (how-to):
  • Au début du code, juste après les commentaires initiaux, par exemple après la ligne "# global variables (can't be set global in the BEGIN block)", ajoutez la ligne suivante en ajustant l'url de votre proxy (attention, sans slash à la fin !) :
    $ENV{HTTPS_PROXY} = 'http://mon_proxy:port_proxy';
  • Après les 2 lignes "$ua = LWP::UserAgent->new();", ajoutez :
    $ua->proxy("http", "http://mon_proxy:port_proxy");
  • Sauvegardez et relancez checkgmail, ça devrait marcher.
Pour éviter l'authentification, j'ai placé un proxy en cascade sans mot de passe.

Aucun commentaire: