Outils pour utilisateurs

Outils du site


bash:mail2doku

Ceci est une ancienne révision du document !


imap2doku

Code bash

Lecture de mail d'une boite IMAP pour en faire des pages/medias dokuwiki

le crontab le lance périodiquement

#!/bin/bash
# lecture d'une boite IMAP et fabrication de page pour dokuwiki
# gepeto@du-libre.org 15/5/2021
#
# utilise mpack
#
#set -x
BOITE="/var/lib/nethserver/vmail/boite-bot@du-libre.xyz/Maildir/cur"
BOITELU="/var/lib/nethserver/vmail/boite-bot@du-libre.xyz/Maildir/.LU/cur"
REPPAGE="/var/lib/nethserver/vhost/le_dokuwiki/data/pages/mailnews"
REPMEDIA="/var/lib/nethserver/vhost/le_dokuwiki/data/media/mailnews"
 
cd /tmp
export IFS=$'\n'
for i in `ls -1 $BOITE`
do
echo $i
	mkdir numpack$$
	mkdir numpack$$/mesg
	cd numpack$$
	cp $BOITE/$i .
	NOMCOURT=`echo "$i" | awk -F"," '{ print $1 }'`
# recuperer sujet date pour fabriquer fichier texte pour dokuwiki
	SUBJECT=`grep "Subject:" $NOMCOURT* | grep -v "h=Date" `
	DATE=`grep "Date:" $NOMCOURT* | grep -v "h=" | awk '{ print $3 "-" $4 "-" $5 "_" $6  $7; exit }' | tr -t [:upper:] [:lower:] | tr ":+" "--"`
 
	if [ -s "$SUBJECT" ] ;then
		echo "===== " $DATE " =====" > ./mesg/$DATE.txt
	else
		echo -n "$SUBJECT" | sed -e 's/Subject:/=====/' > ./mesg/$DATE.txt
		echo "====="  >> ./mesg/$DATE.txt
		echo $DATE   >> ./mesg/$DATE.txt
	fi
	cd mesg
	cat ../$NOMCOURT* | munpack 
	echo ""    >> $DATE.txt
	cat *.desc >> $DATE.txt
# medias
# tout en minus
# et avec des extentions valables
	for name in `ls -1 2>/dev/null | grep -v $0`
	do
         file_name=`echo $name|cut -d. -f1 | tr -t [:upper:] [:lower:] `
         file_ext=`echo $name |cut -d. -f2-3 | cut -c1-3 | tr -t [:upper:] [:lower:]`
         mv $name $file_name.$file_ext
	done
# si markdown 
	if [ -f *.md ];then cat *.md >> $DATE.txt ;fi
# imagess
	for j in `ls -1 *.png *jpg 2>/dev/null ` ;do
		echo '' >> $DATE.txt
		echo '{{:mailnews:fluxon:'$j'?300|}}' >> $DATE.txt
		mv $j $REPMEDIA
	done
 
# sons et autres
	for j in `ls -1 *.mp3 *.ogg *.fla *.wav *.pdf *.doc 2>/dev/null` ;do
		echo '' >> $DATE.txt
		echo '{{:mailnews:fluxon:'$j'|}}' >> $DATE.txt
		mv $j $REPMEDIA
	done
 
# mettre la page en place et le message en LU
	mv $DATE.txt $REPPAGE
# menage
	cd /tmp
	rm -rf numpack$$ 
	mv $BOITE/$i $BOITELU
done
chown -R dom:apache $REPPAGE $REPMEDIA
<code>
==== Page dokuwiki ====
En utilisant le plugin **nspages**
<code>
====== Les nouveautés ======
===== NEWS =====
Reçues sur le mail 
 
<nspages :mailnews: -exclude:start -usePictures -displayModificationDates -h1 -numberedList  -reverse -sortByDate >
bash/mail2doku.1620990355.txt.gz · Dernière modification: 2021/05/14 11:05 de gepeto