Bonjour

J'espère bien me faire comprendre car cela n'est pas évident d'expliquer mon problème.


Pour industrialiser des traitements d'envoi de mail, j'utilise un script sous Aix.

J'ai créé un fichier contenant le nom des fichiers à mailler ainsi que le nom de la variable (contenu dans le .profile) indiquant les destinataires.

fichier .profile:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
export MEL1=toto@fai.fr
export MEL2=titi@fai.fr
export MEL3=tutu@fai.fr,tata@fait.fr
fichier MAIL.txt
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
fichier1;nom_variable_MEL1
fichier2;nom_variable_MEL2
fichier3;nom_variable_MEL3

scripts EnvoiMail.sh
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 
while read LigneEnvoi
 do
    FichierAttache=`echo ${LigneEnvoi} | cut -d ";" -f 1`
    DestMail=`echo ${LigneEnvoi} | cut -d ";" -f 2`
 
    # envoi du mail ...
    cat <<FINMSG>mail.tmp
    Bonjour,
 
    Veuillez trouver le fichier joint
 
    Cordialement 
 
    FINMSG
    uuencode ${FichierAttache} "${FichierAttache}" >> mail.tmp
 
    # Envoi du mail avec le fichier joint
    cat mail.tmp | mailx -s "Le fichier joint" "${DestMail}" 
 
  done < MAIL.txt
J'aimerais savoir quoi mettre exactement dans MAIL.txt :
${MELx} ou MELx ou {MELx} ....

et comment dire au script que la valeur contenue dans DestMail correspond à un nom d'une variable du .profile et dont de mettre dans DestMail la valeur de $MELx

Pour l'instant, j'ai résolu mon probleme en mettant un case de la manière suivante:

Dans le fichier MAIL.txt, je mets MEL1, MEL2 ou MEL3
et dans le script:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
case ${DestMail}
  MEL1)   DestMail=${MEL1}
  MEL2)   DestMail=${MEL2}
  MEL3)   DestMail=${MEL3}
  *) echo 'MEL INCONNU'
esac
Mais cela n'est pas propre. Je sais qu'il est possible de faire ce que je souhaite. Je l'ai déjà fait il y plusieurs années mais impossible de me rappeler comment j'ai fait

Merci pour toute l'aide apportée.


Frédéric S