mailsync a novémaily


To CZ-debian list <czdebian-l zavinac debian bod cz>
From matej zavinac ceplovi bod cz (Matej Cepl)
Date Sat, 18 Jan 2003 00:53:32 -0500
Mail-followup-to CZ-debian list <czdebian-l zavinac debian bod cz>
Organization Northeastern University
User-agent Mutt/1.3.28i

Snažím se zapojit mailsync do zpracovávání mailů (na konci by to
mělo přijít do muttu, ale z různých důvodů nechci používat
Maildir soubory) a mám dva problémy z mbox foldery:

1) Jak zjistit kolik nových zpráv je v mbox folderu? V Maildiru
   stačilo spočítat soubory v ./new adresáři. Existuje nějaká
   utilita?
2) Jak zjistí mutt jestli jsou zprávy nové (příznak N) nebo
   nečtené (příznak O)? Proč stále tvrdí, že nemám žádné nové
   zprávy, ale všechny zprávy, které jsou ve skutečnosti nové
   jsou O?

Pro zajímavost přikládám všechny příslušné skripty.

Dokážete mi někdo odpovědět?

   Děkuji,

      Matěj

-- 
Matej Cepl,
Finger: 89EF 4BC6 288A BF43 1BAB  25C3 E09F EF25 D964 84AC
138 Highland Ave. #10, Somerville, Ma 02143, (617) 623-1488
 
I know of no country in which there is so little independence of
mind and real freedom of discussion as in America.
    -- Alexis de Tocqueville

#!/bin/sh
# $Id: procppp,v 3.7 2003/01/17 22:13:04 matej Exp $

WAS_ON=0
TIME_TO_WAIT=2
. /etc/default/ntp-servers

/sbin/ifconfig | grep -q '^\(ppp\|eth\)'
WAS_ON=$? # 0 if it IS on

pppon $1 # pripoj se na Internet, nejsi-li uz pripojen

# synchronizace mailu
sudo -u root /usr/sbin/ntpdate -v -b -s $NTPSERVERS
/usr/bin/fetchmail&
/usr/sbin/sendmail -q
/usr/bin/imapfilter
/usr/bin/mailsync -v inbox-local-remote
/usr/bin/mailsync -v vimoutliner-local-remote
/usr/bin/mailsync -v software-local-remote
/usr/bin/mailsync -v spolvedy-local-remote

#zase postfix
while (mailq | grep '^[^ ]*\*' >/dev/null) \
        || (ps aux | grep '^fetchmail' >/dev/null )
   do sleep $TIME_TO_WAIT
done

if [[ $WAS_ON != '0' ]]; then pppoff; fi

killspam 2>>~/.bogofilter/killspam-time.log
#!/bin/sh
# $Id: killspam,v 1.11 2003/01/18 00:36:35 matej Exp $

# constants
MAILDIR="$HOME/Mail"
SPAMBOX="$MAILDIR/spam"
BOGODIR="$HOME/.bogofilter"
LOGFILE="$BOGODIR/killspam.log"

function processmbox () {
   PROCESSBOX="$MAILDIR/$1"
   echo $PROCESSBOX
   RAW_TIME=$(export LC_ALL=C;\
   ls --full-time $PROCESSBOX | tr -s ' ' | cut -d ' ' -f 6-10)
   TTIME=$(date  "+%Y%m%d%H%M.%S" -d "$RAW_TIME")
   formail -s procmail $BOGODIR/bogofilter.rc < $PROCESSBOX
   mv $PROCESSBOX $BOGODIR/backup/$1
   mv $BOGODIR/bogofilter.mbox $PROCESSBOX
   touch -t $TTIME $PROCESSBOX
   echo "Processing $PROCESSBOX." >> $LOGFILE
   unset PROCESSBOX TTIME RAW_TIME
}
echo "" > $LOGFILE

processmbox INBOX
processmbox progs
processmbox profi
processmbox vimoutliner
# $Id: procmailrc,v 1.5 2002/11/11 04:09:24 matej Exp $
PATH=/bin:/usr/bin:/usr/bin
MAILDIR=$HOME/Mail      #you'd better make sure it exists
BOGODIR=$HOME/.bogofilter
SPAMBOX=$MAILDIR/spam
DEFAULT=$BOGODIR/bogofilter.mbox
LOGFILE=$BOGODIR/procmail.log

:0:
* ^X-Bogosity.*
$DEFAULT

:0fw
| bogofilter -u -e -p

:0:
* ^X-Bogosity: Yes, tests=bogofilter
$SPAMBOX

:0:
$DEFAULT
# $Id:$
# Tomas Pospisek <tpo_deb zavinac sourecpole bod ch>
#
# [1] /usr/share/doc/mailsync/README
# [2] /usr/share/doc/libc-client-ssl2001/naming.txt.gz
# [3] rfc2060
#

#
# Get all mail from the "debian.org" IMAPS (IMAP over SSL)
# server for the user "tpo" (IMAP is the default transport).
# Do not validate the SSL certificate. Get all the
# mailboxes that start with "INBOX." but do not recurse
# into subfolders. Before comparing mailboxes strip off
# "INBOX." form their name. When authentificating use
# "secret" as password.
#
# for the exact semantics of the server line see [2]
#
# (Can anybody lighten me up on what "ref" is?)
#
store neu-imap {
        server  {neumail04.neu.edu/user=login/ssl/novalidate-cert}
        ref     {neumail04.neu.edu}
        pat     %
        passwd secret
}

store remote-inbox {
        server  {neumail04.neu.edu/user=login/ssl/novalidate-cert}
        ref     {neumail04.neu.edu-inbox}
        pat     INBOX
        passwd secret
}

store remote-vimoutliner {
        server  {neumail04.neu.edu/user=login/ssl/novalidate-cert}
        ref     {neumail04.neu.edu-vimoutliner}
        pat     vimoutliner
        passwd secret
}

store remote-software {
        server  {neumail04.neu.edu/user=login/ssl/novalidate-cert}
        ref     {neumail04.neu.edu-software}
        pat     progs
        passwd secret
}

store remote-spolvedy {
        server  {neumail04.neu.edu/user=login/ssl/novalidate-cert}
        ref     {neumail04.neu.edu-spolvedy}
        pat     profi
        passwd secret
}

store local-inbox {
        pat     Mail/INBOX
        prefix Mail/
}

store local-vimoutliner {
        pat     Mail/vimoutliner
        prefix Mail/
}

store local-software {
        pat     Mail/software
        prefix Mail/
}

store local-spolvedy {
        pat     Mail/spolvedy
        prefix Mail/
}

#
# Let's synchronize our local inbox with the cyrus inbox. The
# synchronization info is kept on the remote cyrus server and
# "secret" is used for authentification
#
channel inbox-local-remote  remote-inbox local-inbox {
        msinfo  Mail/.msinfo
}
channel vimoutliner-local-remote  remote-vimoutliner local-vimoutliner {
        msinfo  Mail/.msinfo
}
channel software-local-remote  remote-software local-software {
        msinfo  Mail/.msinfo
}
channel spolvedy-local-remote  remote-spolvedy local-spolvedy {
        msinfo  Mail/.msinfo
}
# Options #
###########
#
# Some program options, such as log file and non-response server timeout.
#
set logfile = /home/matej/.imapfilter/log
set namespace = no
set timeout=120
set headers=yes


# Accounts and mailboxes #
##########################

account neumail login:secret zavinac neumail04 bod neu bod edu tls1
  folder inbox-folder INBOX

# Filters #
###########

filter korejci or
  mask header Content-Type euc-kr
  mask header Content-Type gb2312
  mask header Content-Type ks_c_5601-1987
  mask subject ScanMail
action delete Subject

filter killfile or
  mask From motl zavinac feynman bod harvard bod edu
  mask From MKOHOUT zavinac worldnet bod att bod net
  mask From guckes zavinac math bod fu-berlin bod de
action delete From

filter outliner or
        mask To vimoutliner
        mask Cc vimoutliner
action move vimoutliner

filter prog-discs or
        mask To lyx-users
        mask Cc lyx-users
        mask To cstex
        mask Cc cstex
        mask To debian-laptop
        mask Cc debian-laptop
        mask To czdebian-l
        mask Cc czdebian-l
        mask To usbvisor-unix
        mask Cc usbvisor-unix
        mask To debian-mentors
        mask Cc debian-mentors
        mask To swsusp
        mask Cc swsusp
action move progs

filter profi-discs or
        mask To r-help
        mask Cc r-help
        mask To stat-l
        mask Cc stat-l
        mask To acts-talk
        mask Cc acts-talk
   mask From listmanager zavinac mantle bod sbs bod umass bod edu
action move profi

# Jobs #
########
#
# Last, there is the definition of the jobs where user combines
# folders and filters _already_ defined, and specifies which filters
# should be applied to which folders.
#
job profi-discs inbox-folder
job outliner inbox-folder
job prog-discs inbox-folder
job korejci inbox-folder
job killfile inbox-folder

Partial thread listing: