Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 21/10/2005, à 13:12

eddy

Envoyer des fichiers/images via Thunderbird depuis Nautilus

Bonjour.

Une chose qui personnellement me manquait beaucoup depuis que j'ai quitté Windows est de pouvoir attacher des fichiers (réduits si ce sont des jpg) à un mail et les envoyer avec mon mailer habituel Thunderbird directement depuis mon navigateur de fichier usuel Nautilus (qui dispose de cette fonction mais uniquement via Evolution). J'ai cherché sur le forum, j'ai trouvé des scripts ici (d'un auteur inconnu) et (mathieu vilaplana). J'ai pris alors mon courage à deux mains et fait un mix de tout ça à ma sauce personnelle. Je vous livre le résultat qui en principe répond aux caractéristiques suivantes :
- permet d'attacher des fichiers et/ou des images par clic droit sur une sélection de fichiers (propose le redimensionnement s'il y a des images);
- fonctionne avec des noms de fichiers/répertoires un peu bizarres (pas trop quand même), pas de problème avec les espaces en particulier;
- pas de problème non plus pour des envois depuis le bureau;
- fonctionne que Thunderbird soit lancé ou non.

Si ce script vous est utile en quelque chose, n'hésitez pas à le dire ici ça me fera plaisir smile

Installation

1. Taper dans un terminal :

gedit ~/.gnome2/nautilus-scripts/"Envoyer par mail"

2. Coller le script suivant :

#!/bin/bash
# Date   : 19/10/2005
#
# Attention : les packages zenity et imagemagick doivent etre installes au prealable
#

# On verifie tout d'abord qu'il y a bien au moins un fichier selectionne
if [ $# -eq 0 ]; then
	zenity --warning --title="Attention" --text="Il faut sélectionner au moins un fichier !"
	exit 1
fi

# On memorise le nombre de fichiers a envoyer
NB_FILES=$#

# On ecrase une eventuelle precedente liste de fichiers attaches
echo "" > /tmp/attachment.log

# On passe en revue la liste des fichiers a envoyer
(while [ $# -gt 0 ];
do
  # Pour chaque fichier on memorise son nom et son uri
  FILE_NAME="$1"
  FILE_URI="$NAUTILUS_SCRIPT_CURRENT_URI/$FILE_NAME"
  # On passe les infos a la fenetre de progression
  let "COMPTEUR += 1"
  echo "# Traitement du fichier $FILE_NAME ($COMPTEUR/$NB_FILES) ..."
  let "PROGRESS = COMPTEUR*100/NB_FILES"
  echo $PROGRESS
  # On teste si le fichier est une image
  # Remarque : bizarrement, la ligne suivante ne marche pas si l'image est sur le bureau ...
  # IS_IMAGE=`file -bi "$FILE_NAME" | grep -c image`
  # On procede donc differemment ...
  # La ligne suivante est eventuellement a adapter pour prendre en compte d'autres
  # types de fichier image. Ici on ne reduit que les .jpg
  # Par exemple si on veut reduire les .jpg, les .gif et les .png on peut ecrire
  # IS_IMAGE=`echo $FILE_NAME | grep -c -E [.]jpg\|[.]gif\|[.]png`
  IS_IMAGE=`echo $FILE_NAME | grep -c -E [.]jpg`
  if [ $IS_IMAGE != 0 ]; then
    # Si c'est une image on demande une fois (pour toutes) la definition souhaitee
    # pour cette image (et les eventuelles autres)
    if [ ! $DEF_ASKED ]; then
      # On attend un peu pour que la fenêtre n'arrive pas avant la fenetre de progression ...
      sleep 2
      DEF=`zenity --list --title "Redimensionner l'(es) image(s) ..." --text="Choisir une définition maximum ci-dessous
(ou cliquer sur Annuler pour envoyer les images sans modification)" --radiolist --column "" --column "Taille" FALSE 1280x1024 TRUE 1024x768 FALSE 800x600 FALSE 640x480`
      MAX_DEF=`echo "$DEF" | awk -F'x' '{ print $1  }'`
      DEF="${MAX_DEF}x${MAX_DEF}"
      DEF_ASKED=1
    fi
    if [ "$DEF" != "x" ]; then
      # Si une definition a ete specifiee, on va contruire
      # une copie de l'image (reduite) dans la corbeille
      # Bizarrement, la ligne suivante ne marche pas toujours si l'image est sur le bureau
      # convert "$FILE_NAME" -resize $DEF "$HOME/.Trash/$FILE_NAME"
      # On fait donc quelque chose de plus complique ...
      WORKDIR="$(echo $NAUTILUS_SCRIPT_CURRENT_URI | sed '	s/file:\/\///g 
								s/%20/\ /g
								s/%23/\#/g
								s/%24/\$/g
								s/%25/\%/g
								s/%35/\?/g
								s/%3B/\;/g
								s/%3C/\</g
								s/%3E/\>/g

								s/%40/\@/g
								s/%5B/\[/g
								s/%26/\&/g
								s/%2C/\,/g
								s/%5E/\^/g
								s/%5D/\]/g
								s/%60/\`/g
								s/%7B/\{/g
								s/%7C/\|/g
								s/%7D/\}/g
								s/%C3%A9/\é/g
								s/%C3%B9/\ù/g
								s/%C3%A8/\è/g
								s/%C3%A7/\ç/g
								s/%C3%A0/\à/g')"

      convert "$WORKDIR/$FILE_NAME" -scale $DEF "$HOME/.Trash/$FILE_NAME"
      # On memorise l'uri de l'image reduite a la place de celle de l'image d'origine
      FILE_URI="file://$HOME/.Trash/$FILE_NAME"
    fi
  fi
  # On rajoute l'uri du fichier a la liste
  if [ "$ATTACHMENT" == "" ]; then
    ATTACHMENT=$FILE_URI
  else
    ATTACHMENT=$ATTACHMENT,$FILE_URI
  fi
  # On enregistre la liste provisoire des fichiers
  echo $ATTACHMENT > /tmp/attachment.log
  # Et on passe au fichier suivant ...
  shift
done) | zenity --progress --auto-close --title="Préparation"  --text="Traitement en cours ..."  --percentage=0

# On recupere la liste des fichiers et on rajoute des quotes autour
ATTACHMENT=`cat /tmp/attachment.log`
ATTACHMENT=\'$ATTACHMENT\'

# On teste si Thunderbird est lance pour choisir
# la bonne façon de joindre les fichiers
MOZ_ON=`ps -ec | grep -c mozilla-thunder`
if [ $MOZ_ON != 0 ]; then
  /usr/lib/mozilla-thunderbird/mozilla-thunderbird-xremote-client "xfeDoCommand(composeMessage,attachment=$ATTACHMENT)"
else
  mozilla-thunderbird -compose "attachment=$ATTACHMENT"
fi

3. Sauver puis rendre le fichier exécutable :

chmod +x ~/.gnome2/nautilus-scripts/"Envoyer par mail"

Utilisation

Sélectionner des fichiers, clic droit puis Scripts > Envoyer par mail.

Màj : version pour Ubuntu 6.04 Dapper Drake

La version précédente du script ne marche pas avec Thunderbird 1.5. Utiliser alors celle-ci :

#!/bin/bash
# Author : Eddy
# Date   : 2006/03/09
#
# Warning : thunderbird version >= 1.5, zenity and imagemagick packages must be installed
#

# Default language = English
_warning_title="Warning"
_warning_text="Please select at least one file !"
_progress_title="Preparing"
_progress_first_text="Processing ..."
_progress_text="Processing file"
_prompt_title="Scale image(s) ..."
_prompt_text="Choose the desired definition
(or Cancel to send pictures unmodified)"
_prompt_column_title="Size"
case $LANG in
# If language = French
	fr* )
	_warning_title="Attention"
	_warning_text="Il faut sélectionner au moins un fichier !"
	_progress_title="Préparation"
	_progress_first_text="Traitement en cours ..."
	_progress_text="Traitement du fichier"
	_prompt_title="Redimensionner l'(es) image(s) ..."
	_prompt_text="Choisir une définition maximum ci-dessous
(ou cliquer sur Annuler pour envoyer les images sans modification)"
	_prompt_column_title="Taille"
esac

# First we make sure there's something selected.
if [ $# -eq 0 ]; then
	zenity --warning --title="$_warning_title" --text="$_warning_text"
	exit 1
fi

# Store the number of files to process.
NB_FILES=$#
# Reset the attachment list.
echo "" > /tmp/attachment.log

(while [ $# -gt 0 ];
do
  # Store the file name and uri.
  FILE_NAME="$1"
  FILE_URI="$NAUTILUS_SCRIPT_CURRENT_URI/$FILE_NAME"
  let "COMPTEUR += 1"
  echo "# $_progress_text $FILE_NAME ($COMPTEUR/$NB_FILES) ..."
  let "PROGRESS = COMPTEUR*100/NB_FILES"
  echo $PROGRESS
  # Test if the file is a picture.
  # The following line may not work if the file is on the desktop ...
  # IS_IMAGE=`file -bi "$FILE_NAME" | grep -c image`
  # so we do differently.
  # Here we reduce only jpeg files.
  # If we wanted to reduce other types of picture file then we could do something like that :
  # IS_IMAGE=`echo $FILE_NAME | grep -c -E [.]jpg\|[.]gif\|[.]png`
  IS_IMAGE=`echo $FILE_NAME | grep -c -E [.]jpg`
  if [ $IS_IMAGE != 0 ]; then
    # If the file is an image, prompt for reducing it.
    if [ ! $DEF_ASKED ]; then
      # Wait a little so that the window does not appear under the progress window ...
      sleep 2
      DEF=`zenity --list --title "$_prompt_title" --text="$_prompt_text" --radiolist --column "" --column $_prompt_column_title FALSE 1280x1024 TRUE 1024x768 FALSE 800x600 FALSE 640x480`
      MAX_DEF=`echo "$DEF" | awk -F 'x' '{ print $1 }'`
      DEF="${MAX_DEF}x${MAX_DEF}"
      DEF_ASKED=1
    fi
    if [ "$DEF" != "x" ]; then
      # Build a reduced copy of the file in the trash.
      # The following line may not work if the file is on the desktop.
      # convert "$FILE_NAME" -resize $DEF "$HOME/.Trash/$FILE_NAME"
      # so we do something quite more complicated ...
      WORKDIR="$(echo $NAUTILUS_SCRIPT_CURRENT_URI | sed '	s/file:\/\///g 
								s/%20/\ /g
								s/%23/\#/g
								s/%24/\$/g
								s/%25/\%/g
								s/%35/\?/g
								s/%3B/\;/g
								s/%3C/\</g
								s/%3E/\>/g
								s/%40/\@/g
								s/%5B/\[/g
								s/%26/\&/g
								s/%2C/\,/g
								s/%5E/\^/g
								s/%5D/\]/g
								s/%60/\`/g
								s/%7B/\{/g
								s/%7C/\|/g
								s/%7D/\}/g
								s/%C3%A9/\é/g
								s/%C3%B9/\ù/g
								s/%C3%A8/\è/g
								s/%C3%A7/\ç/g
								s/%C3%A0/\à/g')"

      convert "$WORKDIR/$FILE_NAME" -scale $DEF "$HOME/.Trash/$FILE_NAME"
      # Store the reduced file uri in place of the file uri.
      FILE_URI="file://$HOME/.Trash/$FILE_NAME"
    fi
  fi
  # Add the file uri to the list.
  if [ "$ATTACHMENT" == "" ]; then
    ATTACHMENT=$FILE_URI
  else
    ATTACHMENT=$ATTACHMENT,$FILE_URI
  fi
  # Store the attachement list into a text file
  echo $ATTACHMENT > /tmp/attachment.log
  # And continue with the next file ...
  shift
done) | zenity --progress --auto-close --title="$_progress_title"  --text="$_progress_first_text"  --percentage=0

# Quotes are required for the attachment list
ATTACHMENT=`cat /tmp/attachment.log`
ATTACHMENT=\'$ATTACHMENT\'

# Test if Thunderbird is running to make properly the attachment.
MOZ_ON=`ps -ec | grep -c mozilla-thunder`
if [ $MOZ_ON != 0 ]; then
/usr/lib/mozilla-thunderbird/mozilla-xremote-client -a mozilla-thunderbird "xfeDoCommand(composeMessage,attachment=$ATTACHMENT)"
else
# Unfortunately this line doesn't work anymore with thunderbird version >= 1.5
#mozilla-thunderbird -compose "attachment=$ATTACHMENT"
mozilla-thunderbird &
sleep 3
/usr/lib/mozilla-thunderbird/mozilla-xremote-client -a mozilla-thunderbird "xfeDoCommand(composeMessage,attachment=$ATTACHMENT)"
fi

Dernière modification par eddy (Le 01/04/2006, à 13:07)

Hors ligne

#2 Le 21/10/2005, à 17:11

TheLiar

Re : Envoyer des fichiers/images via Thunderbird depuis Nautilus

Je viens de tester ton astuce.....et ça marche bien!
Si tu en as d'autres de cette qualité, n'hésite pas!

Hors ligne

#3 Le 21/10/2005, à 20:12

Lootux

Re : Envoyer des fichiers/images via Thunderbird depuis Nautilus

big_smile mais il est d'enfer ce script faudrait peut etre en parler a Keyes pour le mettre dans easyubuntu tongue

Hors ligne

#4 Le 24/10/2005, à 17:14

Le dorat

Re : Envoyer des fichiers/images via Thunderbird depuis Nautilus

Merci excellentissime:D


" L'homme arrive novice à chaque âge de la vie. "
Chamfort

Hors ligne

#5 Le 24/10/2005, à 17:18

fsail

Re : Envoyer des fichiers/images via Thunderbird depuis Nautilus

Merci vraiment excellente comme astuce big_smile

Hors ligne

#6 Le 01/11/2005, à 23:54

LjAm

Re : Envoyer des fichiers/images via Thunderbird depuis Nautilus

Merci! C'est nickel!

Y'en a pas d'autres des comme ça? roll:P

Hors ligne

#7 Le 02/11/2005, à 08:12

jd

Re : Envoyer des fichiers/images via Thunderbird depuis Nautilus

Excellent smile
Sympa, les commentaires du source !

Hors ligne

#8 Le 04/11/2005, à 00:00

nerve

Re : Envoyer des fichiers/images via Thunderbird depuis Nautilus

Fonctionne parfaitement !
merci pour cette astuce bien pratique


Staff TvFreeplayer
http://www.tvfreeplayer.com/
------------------------
Maintener des dépots linux

Hors ligne

#9 Le 04/11/2005, à 00:23

sksbir

Re : Envoyer des fichiers/images via Thunderbird depuis Nautilus

bravo pour la maitrise du scripting shell, on sent la sueur, et les soirées à tester ça dans tous les sens wink

Hors ligne

#10 Le 04/11/2005, à 09:05

yeKcim

Re : Envoyer des fichiers/images via Thunderbird depuis Nautilus

Veux-tu que je mettes ton script sur http://g-scripts.sourceforge.net/ ?


Participer à un projet libre est un jeu... Et toi, à quoi tu joues ?
http://yeknan.free.fr

Hors ligne

#11 Le 04/11/2005, à 09:20

michel2652

Re : Envoyer des fichiers/images via Thunderbird depuis Nautilus

Bravo, joli travail, et merci pour ce super script

#12 Le 04/11/2005, à 17:08

eddy

Re : Envoyer des fichiers/images via Thunderbird depuis Nautilus

yeKcim a écrit :

Veux-tu que je mettes ton script sur http://g-scripts.sourceforge.net/ ?

Je n'ai rien contre, pas de problème.

Hors ligne

#13 Le 04/11/2005, à 21:03

yeKcim

Re : Envoyer des fichiers/images via Thunderbird depuis Nautilus

Il ne manque qu'une fonction pratique : La compression si on sélectionne un dossier


Participer à un projet libre est un jeu... Et toi, à quoi tu joues ?
http://yeknan.free.fr

Hors ligne

#14 Le 04/11/2005, à 21:08

eddy

Re : Envoyer des fichiers/images via Thunderbird depuis Nautilus

yeKcim a écrit :

Il ne manque qu'une fonction pratique : La compression si on sélectionne un dossier

Exact ! Ca manque. Faudra que j'ajoute ça (quand j'aurai le temps, et en ce moment j'en manque ...).

Hors ligne

#15 Le 05/11/2005, à 18:24

elsoso

Re : Envoyer des fichiers/images via Thunderbird depuis Nautilus

ça ne marche pas sad
pourtant ce n'est pas très compliqué comme opération !

Hors ligne

#16 Le 05/11/2005, à 19:28

yeKcim

Re : Envoyer des fichiers/images via Thunderbird depuis Nautilus

elsoso > Qu'est ce qui ne marche pas ? As-tu installé les dépendances ?


Participer à un projet libre est un jeu... Et toi, à quoi tu joues ?
http://yeknan.free.fr

Hors ligne

#17 Le 09/11/2005, à 16:29

elsoso

Re : Envoyer des fichiers/images via Thunderbird depuis Nautilus

tout bêtement je l'avais installé dans /root et pas /home/guillaume ! quelle nouille !

Hors ligne

#18 Le 17/11/2005, à 14:32

Gou

Re : Envoyer des fichiers/images via Thunderbird depuis Nautilus

ça marche nickel! merci beaucoup pour l'astuce! smile

Hors ligne

#19 Le 14/12/2005, à 18:13

concorde001

Re : Envoyer des fichiers/images via Thunderbird depuis Nautilus

Merci pour ce script ... marche à la perfection ... quoique : parfois je ne vois pas les pièces jointes dans l'email, elles sont comme invisibles : là qd on pointe dessus elles s'ouvrent, mais aucune 'écriture' ... chais pas si c'est très clair .... même une copie d'écran ne serait pas plus claire ... enfin bon c'est pas un pb majeur en soit ... cela vient peut-être des droits ...

Au fait, ton script fonctionne t'il sous KDE ou bien y a t'il n équivalent sous KDE ????

Merci

Dernière modification par concorde001 (Le 15/12/2005, à 14:33)

Hors ligne

#20 Le 09/02/2006, à 14:21

TheLiar

Re : Envoyer des fichiers/images via Thunderbird depuis Nautilus

Bonjour
J'arrive bien à envoyer des fichiers avec ce script et des photos aussi, mais le script ne me propose pas le redimensionnement des photos.
Une petite idée?

Hors ligne

#21 Le 09/03/2006, à 14:10

eddy

Re : Envoyer des fichiers/images via Thunderbird depuis Nautilus

TheLiar a écrit :

Une petite idée?

Oui, peut-être que ce ne sont pas des jpeg ? Alors il faut éditer le script avec gedit par exemple et allez faire des petites modifs à cet endroit là :

  # La ligne suivante est eventuellement a adapter pour prendre en compte d'autres
  # types de fichier image. Ici on ne reduit que les .jpg
  # Par exemple si on veut reduire les .jpg, les .gif et les .png on peut ecrire
  # IS_IMAGE=`echo $FILE_NAME | grep -c -E [.]jpg\|[.]gif\|[.]png`
  IS_IMAGE=`echo $FILE_NAME | grep -c -E [.]jpg`

Hors ligne

#22 Le 09/03/2006, à 14:13

yeKcim

Re : Envoyer des fichiers/images via Thunderbird depuis Nautilus

J'avais oublié ce topic. Voici le lien vers le script sur le site gscripts : http://g-scripts.sourceforge.net/cat-filesysmgt.php

Il est le premier de la liste et s'appelle attachtoTBmail


Participer à un projet libre est un jeu... Et toi, à quoi tu joues ?
http://yeknan.free.fr

Hors ligne

#23 Le 09/03/2006, à 14:57

eddy

Re : Envoyer des fichiers/images via Thunderbird depuis Nautilus

Salut yekCim. Je viens de modifier le premier post du sujet pour y ajouter une nouvelle version du script qui soit compatible avec Thunderbird v.1.5 (et donc avec Dapper Drake). Si tu veux la publier à la place de l'autre sur g-scripts c'est ok. Merci !

Hors ligne

#24 Le 09/03/2006, à 16:54

yeKcim

Re : Envoyer des fichiers/images via Thunderbird depuis Nautilus

Je m'en charge ce soir big_smile


Participer à un projet libre est un jeu... Et toi, à quoi tu joues ?
http://yeknan.free.fr

Hors ligne

#25 Le 09/03/2006, à 22:16

Infinity

Re : Envoyer des fichiers/images via Thunderbird depuis Nautilus

mais strop bien smile

Merci beaucoup pour ce script !!!

Hors ligne