Benutzer-Werkzeuge


#!/opt/bin/bash
fehler=0
probeModus=0
 
rm /tmp/getmailCreate.tmp > /dev/null 2>&1
rm /tmp/getmailScript.tmp > /dev/null 2>&1
 
touch /tmp/getmailCreate.tmp
 
writeGetmailScript ()
{
 getmailScript="/volume1/homes/$benutzer/getmail.sh"
 if test $probeModus -eq 0
 then
  if test -e $getmailScript
  then
   echo "Das File $getmailScript  existiert bereits"
   echo
   echo -n "Soll das bestehende File geloescht werden? (j/n default j)  "
   read loeschen
   case $loeschen in
    j) rm /volume1/homes/$benutzer/getmail.sh ;;
    n) mv /volume1/homes/$benutzer/getmail.sh /volume1/homes/$benutzer/getmail.sh.bak ;;
    *) rm /volume1/homes/$benutzer/getmail.sh ;;
   esac
  fi
 else
  getmailScript="/tmp/getmailScript.tmp"
 fi
 touch $getmailScript
 echo '#!/bin/sh' >> $getmailScript
 echo "PATH=/opt/bin:/opt/sbin:/opt/sbin:/opt/bin:/usr/sbin:/usr/bin:/sbin:/bin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/syno/bin:/usr/syno/sbin:/usr/local/bin:/usr/local/sbin" >> $getmailScript
 echo "pid_getmail='/tmp/getmail.pid'" >> $getmailScript
 echo 'if [ -s "$pid_getmail" ]; then' >> $getmailScript
 echo ' exit' >> $getmailScript
 echo 'else' >> $getmailScript
 echo ' touch $pid_getmail' >> $getmailScript
 case $mailLoeschen  in
  true) mailLoeschen='-d' ;;
  false) mailLoeschen='-l' ;;
  *) mailLoeschen='-l' ;;
 esac
 echo -n " su $benutzer -c '/opt/bin/getmail -q $mailLoeschen --getmaildir /volume1/homes/$benutzer/.getmail" >> $getmailScript
 for i in $(cat /tmp/getmailCreate.tmp)
 do
  echo
  echo -n " -r $i" >> $getmailScript
  cat /volume1/homes/$benutzer/.getmail/$i
  echo 
 done
 echo >> $getmailScript
 echo ' exit' >> $getmailScript
 echo 'fi' >> $getmailScript
 cat $getmailScript
}
savaData ()
{
 if test $probeModus -eq 1
  then
   echo "$loginname@$server.rc" >> /tmp/getmailCreate.tmp
   echo "# /volume1/homes/$benutzer/.getmail/$loginname@$server"
   echo '[options]'
   echo " delete = $mailLoeschen"
   echo " message_log = /volume1/homes/$benutzer/.getmail/log"
   echo
   echo '[retriever]'
   echo " type = $accountTyp"
   echo " server = $server"
   echo " port = $port"
   echo " username = $loginname"
   echo " password = $passwort"
   echo " use_apop = false"
   echo " timeout = 180"
   echo " delete_dup_msgids = true"
   echo
   echo '[destination]'
   echo ' type = Maildir'
   echo " path = /volume1/homes/$benutzer/.Maildir/"
   echo " user = $benutzer"
   echo " filemode = 0600"
  else
  if test -e /volume1/homes/$benutzer/.getmail/$loginname@$server.rc
   then
   echo "Das File /volume1/homes/$benutzer/.getmail/$loginname@$server.rc existiert bereits"
   echo
   echo -n "Soll das bestehende File geloescht werden? (j/n default n)  "
   read loeschen
   case $loeschen in
    j) rm /volume1/homes/$benutzer/.getmail/$loginname@$server.rc ;;
    n) mv /volume1/homes/$benutzer/.getmail/$loginname@$server.rc /volume1/homes/$benutzer/.getmail/$loginname@$server.rc ;;
    *) mv /volume1/homes/$benutzer/.getmail/$loginname@$server.rc /volume1/homes/$benutzer/.getmail/$loginname@$server.rc ;;
   esac
  fi
   echo "$loginname@$server.rc" >> /tmp/getmailCreate.tmp
   mkdir -p /volume1/homes/$benutzer/.getmail
   touch "/volume1/homes/$benutzer/.getmail/$loginname@$server.rc"
   echo '[options]' >> /volume1/homes/$benutzer/.getmail/$loginname@$server.rc
   echo " delete = $mailLoeschen" >> /volume1/homes/$benutzer/.getmail/$loginname@$server.rc
   echo " message_log = /volume1/homes/$benutzer/.getmail/log" >> /volume1/homes/$benutzer/.getmail/$loginname@$server.rc
   echo  >> /volume1/homes/$benutzer/.getmail/$loginname@$server.rc
   echo '[retriever]' >> /volume1/homes/$benutzer/.getmail/$loginname@$server.rc
   echo " type = $accountTyp" >> /volume1/homes/$benutzer/.getmail/$loginname@$server.rc
   echo " server = $server" >> /volume1/homes/$benutzer/.getmail/$loginname@$server.rc
   echo " port = $port" >> /volume1/homes/$benutzer/.getmail/$loginname@$server.rc
   echo " username = $loginname" >> /volume1/homes/$benutzer/.getmail/$loginname@$server.rc
   echo " password = $passwort" >> /volume1/homes/$benutzer/.getmail/$loginname@$server.rc
   echo " use_apop = false" >> /volume1/homes/$benutzer/.getmail/$loginname@$server.rc
   echo " timeout = 180" >> /volume1/homes/$benutzer/.getmail/$loginname@$server.rc
   echo " delete_dup_msgids = true" >> /volume1/homes/$benutzer/.getmail/$loginname@$server.rc
   echo >> /volume1/homes/$benutzer/.getmail/$loginname@$server.rc
   echo '[destination]' >> /volume1/homes/$benutzer/.getmail/$loginname@$server.rc
   echo ' type = Maildir' >> /volume1/homes/$benutzer/.getmail/$loginname@$server.rc
   echo " path = /volume1/homes/$benutzer/.Maildir/" >> /volume1/homes/$benutzer/.getmail/$loginname@$server.rc
   echo " user = $benutzer" >> /volume1/homes/$benutzer/.getmail/$loginname@$server.rc
   echo " filemode = 0600" >> /volume1/homes/$benutzer/.getmail/$loginname@$server.rc
  fi
}
 
 
if test "$*" = 'install' || test "$*" = '-i'
then
 if ! test "$(whoami)" = 'root'
 then
  echo ""
  echo "Fehler::Das Script muss unter root laufen"
  fehler=1
  echo ""
 fi
 which ipkg > /dev/null 2>&1
 if ! test $? -eq 0 
 then
  echo ""
  echo "Fehler::ipkg scheint nicht installiert zu sein"
  fehler=1
  echo ""
 fi
 ping -c 1 www.google.ch > /dev/null 2>&1
 if ! test $? -eq 0
 then
  echo ""
  echo "Fehler::Keine Internetverbindung"
  fehler=1
  echo ""
 fi
 if test $fehler -eq 1
 then
  exit 1
 fi
 echo "Update der ipkg Quellen"
 ipkg update > /dev/null 2>&1
 if ! test $? -eq 0
 then
  echo ""
  echo "Fehler::ipkg update konnte nicht ausfeguehrt werden"
  echo ""
  exit
 fi
 ipkg list_installed | grep getmail > /dev/null 2>&1
 if test $? -eq 0
 then
  echo ""
  echo "Fehler::getmail scheint bereits installiert zu sein"
  ipkg list_installed | grep getmail
  echo ""
  exit
 fi
 echo "Installiere getmail und die noetigen Pakete"
 ipkg install getmail > /dev/null 2>&1
 if ! test $? -eq 0
 then
  echo ""
  echo "Fehler::Installation konnte nicht abgeschlossen werden"
  echo ""
  exit
 fi
 echo ""
elif test "$*" = 'create' || test "$*" = '-c'
then
 echo -n "Wieviele externe Accounts sollen erstellt werden? (1-5)"
 read anzahl
 if test -z $anzahl
 then
  echo "Es wird kein Account erstellt"
  exit
 else
  if test $anzahl -gt 5
  then
   anzahl=5
  fi
  echo -n "Fuer welchen User der DS sind diese Accounts?"
  read benutzer
  while ! test -e "/volume1/homes/$benutzer" || test -z $benutzer
  do
   echo -n "Bitte einen gueltigen Benutzer angeben: "
   read benutzer
   if test -n $benutzer && test -e "/volume1/homes/$benutzer"
   then
    break
   fi
  done
  while true
  do
   echo -n "Sollen die Mails nach dem Laden durch getmail auf den Servern geloescht werden?(true/false)  "
   read mailLoeschen
   if test "$mailLoeschen" = 'true' || test "$mailLoeschen" = 'false'
   then
    break
   fi
  done
  i=1
  while test $i -le $anzahl
  do
   while true
   do
    echo
    echo "Daten fuer Account $i von $anzahl werden abgefragt"
    echo "Was fuer ein Typ Account soll angelegt werden?"
    echo
    echo -n "Es werden pop3/pop3s und imap/imaps unterstuetzt: "
    read accountTyp
    case $accountTyp in
     imap) accountTyp="SimpleIMAPRetriever"; break ;;
     imaps) accountTyp="SimpleIMAPSSLRetriever"; break ;;
     pop3) accountTyp="SimplePOP3Retriever"; break ;;
     pop3s) accountTyp="SimplePOP3SSLRetriever"; break  ;;
     *) accountTyp='' ;;
    esac
   done
   while true
   do
    echo -n "Name des Servers z.B. pop.gmx.de:  "
    read server
    if ! test "$(echo $server | ./trim.php)" = '0'
    then
     break
    fi
   done
   while true
   do
    echo -n "Port der Servers z.B. 143 fuer IMAP und 993 fuer IMAPs:  "
    read port
    if ! test "$(echo $port | ./trim.php)" = '0'
    then
     break
    fi
   done
   while true
   do
    echo -n "Benutzername fuer Login an $server:$port:  "
    read loginname
    if test "$(echo $loginname | ./trim.php)" != '0'
    then
     break
    fi
   done
   while true
   do
    echo -n "Passwort fuer Login auf $server angeben:  "
    read passwort
    if test "$(echo $passwort | ./trim.php)" != '0'
    then
     break
    fi
   done
   i=`expr $i + 1`
   savaData
  done
 fi
else
 echo "Usage"
 exit
fi
writeGetmailScript
Melden Sie sich an, um einen Kommentar zu erstellen.

Seiten-Werkzeuge