/* kbs - Simple, easily fooled, POP3 spam filter Copyright (C) 2003 Ian Cowburn (ianc@noddybox.demon.co.uk) This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------- */ static const char id[]="$Id$"; #include #include #include #include #include #include #include #include "global.h" #include "config.h" #include "pop3.h" #include "dbase.h" #include "util.h" /* ---------------------------------------- MACROS */ #define LOG (logfp ? logfp:stderr) /* ---------------------------------------- TYPES */ /* ---------------------------------------- GLOBALS */ static const char *name=NULL; static FILE *logfp=NULL; /* ---------------------------------------- PROTOS */ /* ---------------------------------------- MAIN */ int main(int argc, char *argv[]) { POP3Message *msg; if (strchr(argv[0],'/')) name=strchr(argv[0],'/')+1; else name=argv[0]; if (!ConfigLoad()) { fprintf(stderr,"%s\n",ConfigError()); exit(EXIT_FAILURE); } switch(POP3Connect(ConfigString(CONFIG_HOSTNAME), ConfigInt(CONFIG_PORT), ConfigString(CONFIG_USERNAME), ConfigString(CONFIG_PASSWORD), ConfigInt(CONFIG_TIMEOUT))) { case POP3_OK: break; case POP3_COMMERROR: fprintf(LOG,"Comms error (errno = %d)\n",errno); exit(EXIT_FAILURE); break; case POP3_NOCONNECT: fprintf(LOG,"No connection to host (errno = %d)\n",errno); exit(EXIT_FAILURE); break; case POP3_BADUSER: fprintf(LOG,"Bad username\n"); exit(EXIT_FAILURE); break; case POP3_BADPASSWD: fprintf(LOG,"Bad password\n"); exit(EXIT_FAILURE); break; default: break; } if ((msg=POP3GetList())) { int f; int tot=0; int block=0; for(f=0;msg[f].to;f++) { tot++; printf("Num %d\n",msg[f].id); printf(" From : %s@%s\n",msg[f].from_uname,msg[f].from_domain); printf(" Subject : %s\n",msg[f].subject); if (DBBlockMessage(msg+f)) { printf(" BLOCKED : YES\n\n"); block++; } else printf(" BLOCKED : NO\n\n"); } printf("%d messages, %d blocked\n",tot,block); POP3FreeList(msg); } else { printf("No messages\n"); } return EXIT_SUCCESS; } /* ---------------------------------------- UTIL */ /* END OF FILE */