Difference between revisions of "Mail Tips"

From YobiWiki
Jump to navigation Jump to search
m (Reverted edits by Etegohy (Talk) to last revision by PhilippeTeuwen)
 
(10 intermediate revisions by the same user not shown)
Line 11: Line 11:
   
 
Pour une utilisation plus conviviale vous pouvez ajouter ceci dans votre [[Procmail|procmailrc]], vous pourrez alors simplement taper votre commande mairix dans la Subject line (évitez le mode indexing...) et recevrez en réponse la sortie de mairix
 
Pour une utilisation plus conviviale vous pouvez ajouter ceci dans votre [[Procmail|procmailrc]], vous pourrez alors simplement taper votre commande mairix dans la Subject line (évitez le mode indexing...) et recevrez en réponse la sortie de mairix
  +
<source lang=bash>
:0
 
  +
# Make sure you've this line at top of the file:
* ^Subject: mairix
 
  +
SHELL=/bin/bash
* ^From: your.email.address
 
* !^FROM_DAEMON
 
* !^X-Loop: mairix-results
 
{
 
:0 c
 
mairixresult=|grep -i "^subject: mairix"|cut --characters 17-|xargs mairix
 
 
 
:0
+
:0
 
* ^Subject: mairix
| (formail -r -I"Precedence: junk" \
 
  +
* ^From: [^@]*\/(all.your|email.addresses|that you allow)
-A"X-Loop: mairix-results" ; \
 
 
{
echo "$mairixresult") | $SENDMAIL -t
 
  +
# If you need special options for some addresses, do sth like:
}
 
 
#:0
 
#* ^From:[^@]*one.specific.address
  +
#{ mairixargs="-f /path/to/another/.mairixrc" }
  +
  +
:0
 
mairixresult=|grep -i "^subject: mairix"|cut --characters 17-|xargs mairix $mairixargs 2>&1
 
  +
:0
 
| (formail -r -i "To: $MATCH"; echo "$mairixresult") | $SENDMAIL -t
  +
}
 
 
:0
+
:0
* ^Subject: man mairix
+
* ^Subject: man mairix
* ^From: your.email.address
+
* ^From: [^@]*\/(all.your|email.addresses|that you allow)
| (formail -r ; man mairix) | $SENDMAIL -t
+
| (formail -r -i "To: $MATCH" ; man mairix) | $SENDMAIL -t
  +
</source>
  +
J'écrase volontairement l'adresse où renvoyer les résultats pour éviter tout problème de sécurité, au cas où on utiliserait des règles plus complexes pour le From:
   
 
Examples de sujets:
 
Examples de sujets:
Line 42: Line 49:
   
 
===Global script for cron===
 
===Global script for cron===
This can be called by cron e.g. every day.
+
This can be called by cron e.g. every day with fast indexing and every week or month with slow indexing.
 
<br>This will seek in every homedir for ~/.mairixrc and execute mairix for those users.
 
<br>This will seek in every homedir for ~/.mairixrc and execute mairix for those users.
  +
<source lang=bash>
#! /bin/sh
+
#! /bin/sh
 
  +
[ -x /usr/bin/mairix ] || exit 0
+
[ -x /usr/bin/mairix ] || exit 0
 
  +
# For every existing user who has his homedir under /home and has a ~/.mairixrc
 
  +
CALLER=$(dirname $0)
for i in $(cut -f6 -d: /etc/passwd|grep /home);
 
  +
case "$CALLER" in
do
 
  +
/etc/cron.daily)
if [ -e $i/.mairixrc ];
 
  +
mairixargs=--fast-index
then
 
 
;;
# Run mairix in his name
 
  +
/etc/cron.weekly|/etc/cron.monthly)
su - $(basename $i) -c "nice -n19 mairix"
 
  +
mairixargs=--purge
fi;
 
  +
;;
done
 
  +
esac
 
  +
exit 0
 
 
# For every existing user who has his homedir under /home and has a ~/.mairixrc
 
for i in $(/usr/bin/cut -f6 -d: /etc/passwd|grep /home);
 
do
 
if [ -e $i/.mairixrc ];
 
then
 
# Run mairix in his name
  +
echo $(date '+%H:%M:%S') Running mairix $mairixargs for $(basename $i)
 
su - $(basename $i) -c "/usr/bin/nice -n19 /usr/bin/mairix";
  +
echo $(date '+%H:%M:%S') Done
  +
fi;
 
done
  +
 
exit 0
  +
</source>
   
 
==lbdb==
 
==lbdb==

Latest revision as of 21:36, 24 November 2010

mairix

Pour intégrer le répertoire virtuel avec les résultats, créer un .mairixrc du style

base=/home/phil
maildir=Maildir...
omit=Maildir/.Internet.SPAM**
omit=Maildir/.Mairix**
mfolder=Maildir/.Mairix
database=/home/phil/.mairix_database

Si vous utilisez aussi offlineimaprc veillez à ne pas synchroniser le répertoire Mairix en ajoutant Mairix à l'expression de recherche (dans .offlineimaprc):

folderfilter = lambda foldername: not re.search('(SPAM$|Mairix)', foldername)

Pour une utilisation plus conviviale vous pouvez ajouter ceci dans votre procmailrc, vous pourrez alors simplement taper votre commande mairix dans la Subject line (évitez le mode indexing...) et recevrez en réponse la sortie de mairix

# Make sure you've this line at top of the file:
SHELL=/bin/bash
 
:0
* ^Subject: mairix
* ^From: [^@]*\/(all.your|email.addresses|that you allow)
{
  # If you need special options for some addresses, do sth like:
  #:0
  #* ^From:[^@]*one.specific.address
  #{ mairixargs="-f /path/to/another/.mairixrc" }

  :0
  mairixresult=|grep -i "^subject: mairix"|cut --characters 17-|xargs mairix $mairixargs 2>&1
 
  :0
  | (formail -r -i "To: $MATCH"; echo "$mairixresult") | $SENDMAIL -t
}
 
:0
* ^Subject: man mairix
* ^From: [^@]*\/(all.your|email.addresses|that you allow)
| (formail -r -i "To: $MATCH" ; man mairix) | $SENDMAIL -t

J'écrase volontairement l'adresse où renvoyer les résultats pour éviter tout problème de sécurité, au cas où on utiliserait des règles plus complexes pour le From:

Examples de sujets:

mairix f:myfriend
mairix -x f:myfriend
mairix -h
man mairix

Vu que mairix peut retourner sur la ligne de commande des informations privées (le contenu des résultats), ces règles n'accepteront que des requêtes venant de vous

Global script for cron

This can be called by cron e.g. every day with fast indexing and every week or month with slow indexing.
This will seek in every homedir for ~/.mairixrc and execute mairix for those users.

#! /bin/sh

[ -x /usr/bin/mairix ] || exit 0

CALLER=$(dirname $0)
case "$CALLER" in
    /etc/cron.daily)
        mairixargs=--fast-index
    ;;
    /etc/cron.weekly|/etc/cron.monthly)
        mairixargs=--purge
    ;;
esac

# For every existing user who has his homedir under /home and has a ~/.mairixrc
for i in $(/usr/bin/cut -f6 -d: /etc/passwd|grep /home);
do 
    if [ -e $i/.mairixrc ];
    then 
        # Run mairix in his name
        echo $(date '+%H:%M:%S') Running mairix $mairixargs for $(basename $i)
        su - $(basename $i) -c "/usr/bin/nice -n19 /usr/bin/mairix";
        echo $(date '+%H:%M:%S') Done
    fi;
done

exit 0

lbdb

 # Configuration
 mkdir ~/.lbdbrc
 cp /etc/lbdb.rc ~/.lbdb/lbdbrc
 mcedit ~/.lbdb/lbdbrc
   METHODS="m_inmail m_gpg m_abook"
 # Pour peupler la DB avec les anciens mails: pas d'espace ds les noms svp
 for file in $(find ~/Maildir -type f);do cat $file|lbdb-fetchaddr;done;
 sort ~/.lbdb/m_inmail.list|uniq -W 2 -t "       ">temp.$$; # -t "<tabulation>"
 mv temp.$$ ~/.lbdb/m_inmail.list
 # Pour automatiser le peuplement à chaque nouveau mail:
 mcedit ~/.procmailrc
   :0hc
   | lbdb-fetchaddr
 # Pour interroger la DB:
 lbdbq <query string>