#!/bin/bash source testlib || exit 1 DESCRIPTION1="Ssh beschikbaar?" VERIFYEXIT=0 sshtest || exit 1 DESCRIPTION1="Sla test over indien we niet de juiste licentieoptie hebben." CMD="cat /etc/webint/REG" VERIFYPOSITIVE='"M"' if ! sshtest; then echo "Dit is geen mailserver, test overgeslagen" exit 0 fi info "Basic spamfilter check. Als het woord free 0.4000 geeft, is er wat mis met het global filter." CMD="dspam_dump global free|grep '0.4000'" VERIFYEXIT=1 sshtest || exit 1 ######################### hercreer testusers ./_maketestusers || exit 1 ######################### controleer cyrus imap bug IGNOREERROR=1 DESCRIPTION1="Verwijder oude test" PAGE="useradmin/edituser.php?name=test&del=1" scc_add DESCRIPTION1="Sync oude zooi weg" PAGE="useradmin/synclist.php?del=1" VERIFYPOSITIVE="oude LDAP gebruikers OK: geen overbodige gegevens." scc_add DESCRIPTION1="Controleer cyrus imap bug. zie IMAP.php hack in de SCC source dir." PAGE="useradmin/edituser.php" METHOD="post" POSTBODY="new_uid=test&new_firstname=testfirstname1&new_lastname=testlastname1&new_passwd=syn3&new_o=testcompany&new_gidNumber=513&save=1" scc_add scc_test || exit 1 ############################## tests en oude zooi ruimen info "Testen pop3 account:" PORT=110 VERIFYNEGATIVE="^-" VERIFYPOSITIVE="(Mailbox locked and ready|Username and password accepted)" BODY="USER testuser1 PASS syn3 QUIT " nettest || exit 1 sleep 10 #wait for it to be created info "Testen IMAP account:" PORT=143 VERIFYNEGATIVE="BAD" VERIFYPOSITIVE="^1 OK" BODY="1 LOGIN testuser1 syn3 2 LOGOUT " nettest || exit 1 scc_new # scc zooi opruimen DESCRIPTION1="zooi opruimen" IGNOREERROR=1 PAGE="mail/delvirtdomain.php?virt=testdomein.local" METHOD="post" POSTBODY="yes=1" scc_add DESCRIPTION1="zooi opruimen" IGNOREERROR=1 PAGE="mail/spamfilter.php?del=testuser1" scc_add DESCRIPTION1="basic test externe mailboxen" VERIFYPOSITIVE="Toevoegen" PAGE="fetchmail/listaccounts.php" scc_add DESCRIPTION1="basic test mailqueue" VERIFYPOSITIVE="Herstuur" PAGE="mailqueue/listmailqueue.php" scc_add DESCRIPTION1="testdomein aanmaken" PAGE="mail/addvirtdomain.php" METHOD="post" POSTBODY="new_virt=testdomein.local&add=1" VERIFYPOSITIVE="toegevoegd" scc_add DESCRIPTION1="testadres aanmaken" PAGE="mail/addadress.php" METHOD="post" POSTBODY="new_name=testnaam&new_domain=testdomein.local&new_user=testuser1&add=1" VERIFYPOSITIVE="aangemaakt" scc_add scc_test || exit 1 info "Troep in mailbox leegpoppen:" while true; do sleep 5 PORT=110 VERIFYNEGATIVE="^-" BODY="USER testuser1 PASS syn3 DELE 1 QUIT " nettest || break; done info "Ok, mailbox leeg (hopelijk ;)" # Uniek ID om de mails terug te kunnen vinden ID="testmail$RANDOM`date +%s`" info "Sturen normale mail"; PORT=25 VERIFYPOSITIVE=" qp " VERIFYNEGATIVE="^5" BODY="mail from: rcpt to: data From: To: Subject: test met normale mail $ID normale mail, deze moet aankomen in de mailbox extra regel anders vind het spamfilter het spam :) . quit " nettest || exit 1 info "Sturen spam mail"; PORT=25 VERIFYPOSITIVE=" qp " VERIFYNEGATIVE="^5" BODY="mail from: rcpt to: data Subject: win woman cash What if you could wake up tomorrow morning and be cured of your diabetes? Well, a new diabetes remedy has just surfaced that could very well help reverse your diabetes and reclaim your health... without dangerous drugs. It's actually a mysterious white starch (of all things) that I bet your doctor has never even heard of. Yet it's been shown to lower blood sugar, improve insulin sensitivity, and help diabetics lose weight. And you can learn exactly what this starch is and how it can help you right here. $ID . quit " nettest || exit 1 DESCRIPTION1="Wachten op server..." sleep 5 info "Poppen mail, verwacht het normale mailtje:" PORT=110 VERIFYPOSITIVE="$ID normale mail" VERIFYNEGATIVE="^-" BODY="USER testuser1 PASS syn3 RETR 1 DELE 1 QUIT " nettest || exit 1 info "Poppen mail, verwacht mailbox leeg. Als de spam mail in de inbox staat is er iets mis met het spamfilter." PORT=110 VERIFYPOSITIVE="ERR mail nr not found" VERIFYNEGATIVE="octets" BODY="USER testuser1 PASS syn3 RETR 1 QUIT " nettest || exit 1 info "Sturen virus mail (moet gereject worden):" PORT=25 VERIFYPOSITIVE="^554" #VERIFYNEGATIVE="" BODY="mail from: rcpt to: data From: To: Subject: test met testvirus $ID X5O!P%@AP[4\PZX54(P^)7CC)7}\$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!\$H+H* . quit " nettest || exit 1 info "Sturen normale mail naar extern nietbestaand adres"; PORT=25 VERIFYPOSITIVE=" qp " VERIFYNEGATIVE="^5" BODY="mail from: rcpt to: <$ID@10.11.12.13> data From: To: <$ID@10.11.12.13> Subject: test met niet bestaand adres $ID niet bestaand normale mail naar niet bestaand adres. Deze moet in de queue blijven hangen. . quit " nettest || exit 1 DESCRIPTION1="Wachten op server..." pausetest 5 DESCRIPTION1="Niet bestaande mail moet in queue staan" VERIFYPOSITIVE="$ID" PAGE="mailqueue/listmailqueue.php" scc_add scc_test || exit 1 info "Poppen mail, verwacht het virus alert mailtje:" PORT=110 VERIFYPOSITIVE="virus: Eicar-Test-Signature" VERIFYNEGATIVE="^-" BODY="USER testuser1 PASS syn3 RETR 1 DELE 1 QUIT " nettest || exit 1 info "Mailbox moet nu leeg zijn (het spam mailtje moet in spamfolder staan, dus die zien we niet via pop3):" PORT=110 VERIFYPOSITIVE='^.OK 0 0' VERIFYNEGATIVE="^-" BODY="USER testuser1 PASS syn3 STAT QUIT " nettest || exit 1 info "Kijken via IMAP of spammail met tekst '$ID' ook echt in de spamfolder staat:" PORT=143 VERIFYNEGATIVE="BAD" VERIFYPOSITIVE="SEARCH.*[0-9]" # BODY="1 LOGIN testuser1 syn3 # 2 SELECT INBOX.Spam # 3 SEARCH BODY "$ID" # 4 LOGOUT # " BODY="1 LOGIN testuser1 syn3 2 SELECT \"Junk E-mail\" 3 SEARCH BODY "$ID" 4 LOGOUT " nettest || exit 1 info "Kijken via SSH of onze virusmail ook in quarantine staat" CMD="grep '$ID' /home/system/amavis/virusmails/*" VERIFYEXIT=0 sshtest || exit 1 scc_new DESCRIPTION1="Resetten spamfilter testuser1" PAGE="mail/spamfilter.php?del=testuser1" VERIFYPOSITIVE="testuser1 verwijderd" scc_add DESCRIPTION1="(refresh)" PAGE="mail/spamfilter.php" scc_add DESCRIPTION1="Spamfilter testuser1 echt weg?" PAGE="mail/spamfilter.php" VERIFYNEGATIVE="testuser1" scc_add scc_test || exit 1 info "Email tests ok!"