Ecrire un script dans /etc/dhcp3/dhclient-exit-hooks.d/smtp
du genre :
#!/bin/sh
smtp_setup() {
# No need to continue if we're called with an unsupported option
if [ "$reason" != BOUND ] && [ "$reason" != RENEW ] \
&& [ "$reason" != REBIND ] && [ "$reason" != REBOOT ] \
&& [ "$reason" != EXPIRE ] && [ "$reason" != FAIL ]
then
return
fi
if [ -n "$new_smtp_server" ]; then
echo "New smtp server : '$new_smtp_server'"
server="$new_smtp_server"
else
server="son-serveur-avec-authentification"
echo "No smtp server : using default relay ($server)"
fi
old_server="`postconf -h relayhost`"
if [ "$old_server" != "$server" ]; then
postconf -e "relayhost=$server"
invoke-rc.d postfix reload
fi
}
smtp_setup
Ce que je n'aime pas dans cette solution :
ne gère pas les configs non dhcp
ne gère pas les connexions multiples (filiaire + wifi par exemple)
pas assez souple dans la config (remplacer un serveur par un autre,
choisir son serveur sur d'autres critères, ...)
ne marche pas si dhcp n'envoie pas l'info (dhcpd mal configuré par
l'administrateur du site)
et bien sûr, le script en exemple est spécifique à postfix. Il faudrait faire
la même chose pour les autres (exim[34], ...)
Je pense qu'il faudrait quelque chose de beaucoup plus souple. Un truc
ressemblant à resolvconf me semblerait pas mal (en fait, il y aurait surement
pas mal de chose à unifier/partager dans ces deux systèmes...)
En fait, il y a plusieurs étapes :
Récupérer le/les serveurs smtp de l'interface (avec l'option dhcp, une config statique, ...), un peu comme resolvconf avec les réglages DNS ici.
choisir le smtp qu'on veut réellement utiliser (avec une config par défaut
correcte) en fonction de la liste précédemment récolté et/ou des configs/règles locales (par exemple, essayer aussi smtp.'domaine' ou mail.'domaine'
mettre à jour la config des programmes qui en ont besoin (postfix, exim, ...)
[^] # Re: Suggestion
Posté par Vincent Danjean . En réponse à la dépêche Nouveau gestionnaire de profils réseaux: netswitch. Évalué à 1.
#!/bin/sh smtp_setup() { # No need to continue if we're called with an unsupported option if [ "$reason" != BOUND ] && [ "$reason" != RENEW ] \ && [ "$reason" != REBIND ] && [ "$reason" != REBOOT ] \ && [ "$reason" != EXPIRE ] && [ "$reason" != FAIL ] then return fi if [ -n "$new_smtp_server" ]; then echo "New smtp server : '$new_smtp_server'" server="$new_smtp_server" else server="son-serveur-avec-authentification" echo "No smtp server : using default relay ($server)" fi old_server="`postconf -h relayhost`" if [ "$old_server" != "$server" ]; then postconf -e "relayhost=$server" invoke-rc.d postfix reload fi } smtp_setupCe que je n'aime pas dans cette solution :- ne gère pas les configs non dhcp
- ne gère pas les connexions multiples (filiaire + wifi par exemple)
- pas assez souple dans la config (remplacer un serveur par un autre,
choisir son serveur sur d'autres critères, ...)
- ne marche pas si dhcp n'envoie pas l'info (dhcpd mal configuré par
l'administrateur du site)
- et bien sûr, le script en exemple est spécifique à postfix. Il faudrait faire
la même chose pour les autres (exim[34], ...)
Je pense qu'il faudrait quelque chose de beaucoup plus souple. Un truc ressemblant à resolvconf me semblerait pas mal (en fait, il y aurait surement pas mal de chose à unifier/partager dans ces deux systèmes...) En fait, il y a plusieurs étapes :