Envoie plusieurs PJ en mail

Résolu
dino -  
 dino -
Bonjour,

je voudrais ecrire un script d'envoie de mail ,un seul envoie, avec plusieurs pieces jointes,mon soucis c'est que ces PJ ne sont pas
automatiquement presente et non vide et mon choix doit etre fait dans ce sens : presence + non vide.
J'ai la commande d'envoie de plusieurs fichier :
uuencode "chemin du fichier1" fichier1 ; echo ; "chemin du fichier2" fichier2 ; echo ; ....etc
cette commande envoie les fichiers fichier1 et fichier2 ,mais sort en erreur si le fichiers n'existe pas..et c'est la mon soucis !

j'ai pensé a faire un test d'existence des fichiers et envoyer la commande vers un script que j'executerais a la fin :

test -f fic1 && echo "uuencode "chemin du fichier1" fichier1" >Mail.ksh
ksh Mail.ksh
la mon soucis c'est que je n'arrive pas a a ajouter le separateur "; echo ;" et la deuxieme commande d'envoie et le 2 separateur ...ainsi de suite
et du coup ca ne fait qu'envoyer le premiers fichier.

voila j'espere etre claire : un seul envoie de mail pour une liste de fichier existant.

Merci a tous !

9 réponses

  1. manuel
     
    Salut,

    Tu devrais plutôt essayer de construire une variable contenant tes instructions et l'envoyer au final vers ton fichier...

    Voilà une idée :
    $ ls
    fich1 fich2 fich3 fich5 fich7 fich9

    $ for i in $(seq 10);do test -f fich${i} && var="${var}uuencode \"/home/user/fich${i}\" fich${i};echo;";((i++));done;echo ${var}
    uuencode "/home/user/fich1" fich1;echo;uuencode "/home/user/fich2" fich2;echo;uuencode "/home/user/fich3" fich3;echo;uuencode "/home/user/fich5" fich5;echo;uuencode "/home/user/fich7" fich7;echo;uuencode "/home/user/fich9" fich9;echo;

    $
    0
  2. dino
     
    Merci pour ta reponse.

    Le nom de mes fichiers est aleatoire
    Fichier1,fichier2....etc est juste un exemple
    0
    1. manuel
       
      Et tu te bases sur quoi pour savoir qu'un fichier existe ?
      0
  3. dino
     
    les fichier sont une extension "$$" n° de processus que je peux recuperer
    0
    1. manuel
       
      Ce qui importe dans mon exemple c'est la construction de la variable finale :

      test -f fich${$} && var="${var}uuencode \"/home/user/fich${$}\" fich${$};echo;"


      On teste l'existence d'un fichier et s'il existe on l'ajoute à la variable avec la bonne syntaxe.
      0
  4. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  5. dino
     
    Merci
    Comment j'execute la variable "var" ?
    0
  6. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 659
     
    hello
    et avec
    for F in *; do uuencode "$F" "$F" ; echo ; done
    0
  7. dino
     
    Bonjour a tous

    Ca me fait un message d'erreur :
    begin 755
    %5$535`H`
    `
    end
    + echo

    la piste d'envoyer la liste des commande vers une variable est bonne ,reste comment exécuter cette variable avec les bon paramètres ?
    0
    1. manuel
       
      Re-

      echo "${var} | mail ..."  >Mail.ksh
      ksh Mail.ksh
      0
  8. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 659
     
    rediriger dans un fichier
    for F in *; do uuencode "$F" "$F" ; echo ; done > PJ
    (echo Bonjour; echo; cat PJ) | mail -s sujet nom@systeme
    0
  9. dino
     
    Merci beaucoup vous deux !!!! ca fonctionne !!

    Bonne journée !!
    0