Webová nástěnka ovládaná mailem
Vytvoříme si webovou nástěnku ovládanou e-mailem.
V nějaké podsložce webu (''/var/www/adasek.cz/'') budeme mít html soubor, do něhož bude zapisovat script ''nastenka.sh'', který zadáme do ''~/.forward'' - a tedy se bude tento script spouštět pokaždé, když nám příjde e-mail.
Specifikace: Co bude náš script umět
- Přidání příspěvku e-mailovou zprávou s předmětem "nastenka pridej Nadpis příspěvku"
- (mazání příspěvku)
- (přidávání příloh)
- (editace)
Řešení uživatele ''kobi'':
~/.forward
kobi@adasek.cz "| ~/scripty/nastenka.sh"
~/scripty/nastenka.sh
#!/bin/bash
#náš html soubor nástěnky:
cesta="/var/www/adasek.cz/kobi/index.html"
#dočasné soubory:
mail="/tmp/nastenka$$"
mailBody="/tmp/nastenkaBody$$"
rm -f $mail
rm -f $mailBody
hlavicka=1
while read radka
do
#načítání vstupu (emailu)
echo $radka >> $mail
if echo "$radka"|grep '^$'
then
hlavicka=0
fi
if [ $hlavicka -eq 0 ]
then
echo $radka >> $mailBody
fi
done
#Teď máme v souboru $mail celý e-mail s hlavičkami a v souboru $mailBody tělo e-mailu.
subj=`cat $mail|grep "^Subject:"|sed -e "s/^Subject://"`
if echo "$subj"|grep "[Pp][Rr][Ii][Dd][Ee][Jj]"
then
#vyčistíme předmět
pureSubj=`echo $subj | sed -e 's/^.*[Pp][Rr][Ii][Dd][Ee][Jj][^a-zA-Z]*(.*[a-zA-Z]).*$/1/' | sed -e 's/=20/ /g'`
#v souboru nástěnky najdeme komentář označující místo pro vložení
cisloradku=`grep -n '' $cesta|cut -d':' -f1`
novyprispevek=''`date`' '$pureSubj' '`cat $mailBody|tr -d "n"`' '
#a vložíme tam nový příspěvek
#pro jistotu uložíme nejprve do dočasného souboru $cesta_new
sed -e "$cisloradku a $novyprispevek" $cesta > $cesta""_new
#a až potom přepíšeme
mv $cesta""_new $cesta
chmod 644 $cesta
fi
~/scripty/nastenka.sh
<html>
<head>
<style type="text/css">
td {border:2px solid black}
</style>
</head>
<body>
<table>
<!--bla-->
</table>
</body>
</html>
Problémy
- E-mail by neměl přijít v html formátu
- E-mail by měl přijít s kódováním UTF-8, jinak se pravděpodobně nezobrazí správně diakritika