Mot-clef « Alias »

Compte mail pro chez OVH, quelques subtilités

Il y a environ un an, j’ai pris un compte mail “pro” chez OVH parce que gérer un serveur mail sur mon dédié, c’est vraiment trop prise de tête.

Dans l’ensemble ça fait le boulot. Leur webmail à base d’Outlook est une bouse (pire encore que Gmail, c’est dire) mais comme je n’utilise environ jamais de webmail ce n’est pas vraiment un problème.

J’ai pu avec un seul compte mail déclarer un certain nombre d’alias sur mes différents domaines sans problèmes majeurs.

Enfin à part deux « subtilités » qui m’ont fait perdre énormément de temps sans que je trouve quoique ce soit sur le net qui me mette sur la voie…

Mots de passe : attention aux accents !

J’ai galéré des heures à essayer de me connecter dessus avec Thunderbird sur mon PC et deux clients mails différents sur Android et pas moyen : le seul qui marchait, c’était IMAP sur Thunderbird, IMAP sur Android, pas moyen et SMTP sur aucun des deux.

J’ai tenté plein de trucs, suivi 12 fois toutes les docs, etc. Jusqu’au moment où je me dis que je vais tenter de virer le « é » que j’avais mis dans mon mot de passe pour ajouter un caractère spécial. Et c’était ça : tout marche maintenant. J’ai dû perdre en tout 4 ou 5 heures parce que j’ai mis un accent dans mon mot de passe.

Je ne suis pas près de recommencer, quel que soit le site ou service.

Je précise que je saisissais bien l’accent hein (je passais par copié/collé sur le PC donc pas de faute de frappe). C’est juste que de l’autre côté, il me le rejetait. Puis j’ai viré l’accent et là tout marche.

Pas merci OVH. Mais alors pas du tout.

Alias automatiques en utilisant un « + »

Comme sur d’autres services (comme Gmail, par exemple), on peut utiliser des variantes de l’adresse en ajoutant « + » et une chaîne quelconque à la suite du nom d’utilisateur.

J’utilise ce mécanisme pour fournir un e-mail unique à chaque nouveau site ou service à qui je communique une adresse e-mail, histoire de pouvoir tracer d’où viennent les spams.

Par exemple si l’adresse e-mail est mail@toto.fr, on peut utiliser mail+amazon758@toto.fr, ça marchera également.

Enfin à peu près.

En fait on peut sans problème recevoir un mail via cette adresse-là, il n’y a rien de particulier à faire.

Par contre, pour en envoyer là il faut aller déclarer explicitement un alias dans l’interface de gestion fournie par OVH, sans quoi l’envoi est rejeté.

Voilà voilà, je laisse ça là, sait-on jamais, ça peut servir à quelqu’un d’autre…


Quelques trucs sur UNIX/Linux #4

Crontab et 49-3

Crontab : changer l’adresse e-mail de destination

Il est possible de spécifier l’utilisateur destinataire des mails de la crontab en définissant la variable MAILTO en début de fichier.

Remplacement de l’adresse par défaut :

MAILTO=webmaster@mon-site.fake

Désactivation de l’envoi de mail :

MAILTO=""

(source)

Crontab : redirection de la sortie dans un fichier

Par défaut cron envoie par mail l’ensemble des sorties (standard et erreur) des tâches exécutées. Il peut être intéressant d’écrire tout ça dans des fichiers de logs à la place.

Pour ce faire il suffit d’utiliser les mécanismes de redirections de sorties habituellement disponibles dans les terminaux en terminant la ligne par > /path/to/log/file 2>&1. La première partie (> /path/to/log/file) déclenche la redirection de la sortie standard, la seconde partie (2>&1) effectue la redirection de la sortie d’erreur dans la sortie standard.

Exemples :

# Redirection de la sortie standard dans le fichier /path/cron.log et envoi par e-mail de la sortie d'erreur
* * * * * /path/to/script > /path/cron.log

# Redirection des sorties standard et erreur dans le fichier /path/cron.log
* * * * * /path/to/script > /path/cron.log 2>&1

(source)

Rejouer la dernière commande en ajoutant sudo

Il m’arrive de temps en temps de lancer une commande nécessitant les droits root en oubliant de la précéder par sudo. Il est possible de rappeler la dernière commande l’historique mais la syntaxe est un poil longue et compliquée.

La solution que j’ai retenue est donc d’ajouter un alias dans mon fichier .bash_aliases :

# 49.3
alias 49.3='sudo "$BASH" -c "$(history -p !!)"'

Le nom 49.3 est court et facile à retenir puisqu’il fait directement référence à l’article 49 alinéa 3 de la constitution française dont le principe est somme toute assez proche ^^


Un nom plus court pour la commande change.php

Cet article n'intéressera pas forcément grand monde. En même temps, le but premier de ce blog était bien à l'origine de me servir de bloc-notes pour garder une trace de certaines choses que j'ai eu plus ou moins de mal à trouver et/ou retenir, pas forcément à intéresser un public très large.

Donc là on parle de développement avec RBS Change et plus particulièrement de la commande change.php. Avant la version 3.5 il fallait installer une commande globale sur le serveur pour pouvoir l'exécuter, à partir de la version 3.5 cette commande globale n'est non seulement plus nécessaire mais carrément gênante (parce qu'on passe dans du code qui n'est plus compatible, même si on ne s'en rend pas compte tout de suite).

Mais toujours est-il que taper php framework/bin/change.php c'est vite lourd. Une solution possible est de passer par un alias de commande dans le .bashrc :

alias change.php="php framework/bin/change.php"

Mais par moment ça marche moyen. Surtout si la commande globale de la version 3.0.x est installée, parce que des fois on se retrouve à exécuter quand même la commande globale alors qu'on voulait exécuter celle contenu dans le framework.

Une meilleure solution est de passer par une commande personnalisée. Sur Ubuntu Serveur inclut par défaut (cf le fichier .profile) le dossier ~/bin dans le PATH. Ainsi il suffit de définir un fichier ~/bin/change.php (sans oublier de lui donner les droits d'exécution : chmod +x ./change.php) contenant :

#!/usr/bin/env php
<?php
if (file_exists("framework/bin/includes")) {
  $script = "framework/bin/change.php";
}
else
{
  $script = "/usr/local/bin/change.php";
}
if (file_exists($script))
{
  array_shift($argv);
  $script = $script . ' ' . implode(' ', $argv);
  system($script);
}
else
{
  echo "Could not find $script";
}

Personnellement j'ajoute aussi un lien symbolique pour pouvoir exécuter simplement c au lieu de change.php :

ln -nfs change.php c

Voilà voilà exécuter juste c plutôt que php framework/bin/change.php c'est quand même nettement plus agréable, surtout quand on développe et qu'on tape la commande toutes les 5 minutes :o