Outils personnels

Archivemail : Différence entre versions

De wikiGite

 
 
(3 révisions intermédiaires par un autre utilisateur non affichées)
Ligne 1 : Ligne 1 :
 +
Archive les mails au format mailbox ou maildir.
 +
 +
Install :
 +
apt-get install archivemail
 +
 +
Script à mettre dans un répertoire accessible aux utilisateurs :
 
  #!/bin/bash
 
  #!/bin/bash
 
  # Archivemail backup mbox or Maildir to mbox gzipped files.
 
  # Archivemail backup mbox or Maildir to mbox gzipped files.
Ligne 7 : Ligne 13 :
 
  MAILDIR=$HOME/Maildir
 
  MAILDIR=$HOME/Maildir
 
  BACKUP=$HOME/archivemails
 
  BACKUP=$HOME/archivemails
  LOG=/opt/systools/log
+
  LOG=/opt/tools/log
 
  LOGFILE=$BACKUP/archivemail.log
 
  LOGFILE=$BACKUP/archivemail.log
 
  BACKUPDIR=$BACKUP/arch$(date +%d%m%y)
 
  BACKUPDIR=$BACKUP/arch$(date +%d%m%y)
Ligne 22 : Ligne 28 :
 
  if [ -h $MAILDIR ]
 
  if [ -h $MAILDIR ]
 
  then
 
  then
  MAILDIR=$(ls -l /var/www/web7/Maildir | awk 'BEGIN{FS="-> "}{print $2}')
+
  MAILDIR=$(ls -l /var/www/web/Maildir | awk 'BEGIN{FS="-> "}{print $2}')
 
  fi
 
  fi
 
   
 
   
Ligne 47 : Ligne 53 :
 
  done)
 
  done)
 
  echo "Fin de traitement : $(date)">> $LOGFILE
 
  echo "Fin de traitement : $(date)">> $LOGFILE
 +
Planifier ensuite par utilisateur dans /etc/cron.d/archivemail-<nom_utilisateur> :
 +
* * * * 0      user1    /opt/tools/archivemail.sh 360
 +
Pour lire les mails archiver, utiliser mutt en ligne de commande :
 +
mutt -f [path_to_archive_file.gz]

Version actuelle datée du 18 mars 2009 à 19:03

Archive les mails au format mailbox ou maildir.

Install :

apt-get install archivemail

Script à mettre dans un répertoire accessible aux utilisateurs :

#!/bin/bash
# Archivemail backup mbox or Maildir to mbox gzipped files.
# To read/search a backuped mail, use mutt -f [path_to_archive_file.gz].
# Then forward it with mutt to a valid email address.
# The variable BACKUPDIR gives the path of backuped files.

MAILDIR=$HOME/Maildir
BACKUP=$HOME/archivemails
LOG=/opt/tools/log
LOGFILE=$BACKUP/archivemail.log
BACKUPDIR=$BACKUP/arch$(date +%d%m%y)

echo $(date) >> $LOGFILE

# $1 is the retention policy. If not set, the default of archimail is 180 days.
if [ ! -z $1 ]
then
	RP="-d $1"
fi

# Archivemail don't work on symbolic links. Retreive real directory path.
if [ -h $MAILDIR ]
then
	MAILDIR=$(ls -l /var/www/web/Maildir | awk 'BEGIN{FS="-> "}{print $2}')
fi

if [ ! -d $BACKUPDIR ]
then
	mkdir -p $BACKUPDIR
	if [ $? -ne 0 ]
	then
		echo "Creation repertoire $BACKUPDIR impossible !" >> $LOGFILE
		exit 1
	fi
fi

# "For" doesn't handle directory names with space. Use "while" loop.
find $MAILDIR -type d | (while read mfile
do
	if [ "$(echo $mfile | grep -i spam)" != "" -o "$(echo $mfile | grep -i junk)" != "" ]
	then
# If spams, we force delete instead of archive
		archivemail -d 60 --delete "$mfile" >> $LOGFILE 2>&1
	else
		archivemail $RP -o $BACKUPDIR "$mfile" >> $LOGFILE 2>&1
	fi
done)
echo "Fin de traitement : $(date)">> $LOGFILE

Planifier ensuite par utilisateur dans /etc/cron.d/archivemail-<nom_utilisateur> :

* * * * 0       user1    /opt/tools/archivemail.sh 360

Pour lire les mails archiver, utiliser mutt en ligne de commande :

mutt -f [path_to_archive_file.gz]