?? kkmail.cc
字號:
/* Name : kkmail** File : kkmail.cc** Author : DELFOUR Kevin - DUTEIL Julien** Description : Client Mail utilisant les protocoles POP et SMTP** ****** Version : 3.0.2** Note : Cette version n'est pas certifie sans erreur mais en local** elle marche correctement...** SMTP Content-Transfer-Encoding: Quoted-printable OK** Mail : delfour.kevin@free.fr** Copyright : 2007@DEKKA Studio*/#include <stdio.h>#include <signal.h>#include <cstring>#include <iostream>#include <fstream>#include <pwd.h>#include "inout.h"#include "lib.h"#include "mail.h"#include "pop.h"#include "smtp.h"using namespace std;int main(int argc, char ** argv){ bool Debug; int nbmsg,Tempdebug; char Addrpop[50]; char Log[50]; char* Pass; char Com[50]; char Addrsmtp[50]; char Rcptto[50]; char Sujet[50]; int Number; char n[4]; int Exit= 0; if ((argc!=2) || ((strcmp(argv[1],"--debug")==0) || (strcmp(argv[1],"-d")==0))) { if (argc > 1) {//cas ou l'option --debug est activé Debug = true; Tempdebug = 5; } else { Debug = false; Tempdebug = 2; } signal(SIGINT,FIN); //PRE INSTALLATION //On prepare les repertoires necessaires à l'application s'il n'existe pas system("mkdir maildir"); system("mkdir buffer"); system("mkdir temp"); system("clear"); //Affichage de la banniére TITLE(); //Etape 1 - Saisie des informations necessaires printf("\tAdresse du serveur POP : "); SCAN (Addrpop); printf("\tAdresse du serveur SMTP : "); SCAN(Addrsmtp); printf("\tLogin :"); SCAN (Log); Pass = getpass("\tPassword :"); PRINTSTATEMENT("Connection en cours ..."); //Etape 2 - Demande de connexion int descBR = CONNECT(Addrpop,Log,Pass,Debug); if ( descBR!=-1 ){ //Si aucune soucis lors de la connexion //On affiche l'etat de la boite mail à l'utilisateur nbmsg = NBMESSAGE(descBR,Debug); if (nbmsg>0) { PRINTSTATEMENT("Telechargement des Emails en cours..."); REFRESH(descBR,nbmsg,Debug); PRINTSTATEMENT("Telechargement des Emails terminé..."); sleep(Tempdebug); } else PRINTERROR("Aucun message disponible, votre boite Email est vide ..."); while(Exit!=1){ //Etape 3 - On affiche les messages apres on attend une action de l'utilisateur //Plusieurs actions possible READ - WRITE - HELP ... system("clear"); LISTMSG(nbmsg,Debug); SCAN(Com); if (strstr(Com,"REFRESH")!=NULL || (strstr(Com,"refresh")!=NULL) ){ DISCONNECT (descBR,Debug); descBR = CONNECT(Addrpop,Log,Pass,Debug); PRINT_Kouleur("Telechargement des Emails en cours","gris"); nbmsg = NBMESSAGE(descBR,Debug); REFRESH(descBR,nbmsg,Debug); } if (strstr(Com,"HELP")!=NULL || (strstr(Com,"help")!=NULL) ){ system("clear"); HELP(); cin.get(); } if (strstr(Com,"QUIT")!=NULL || (strstr(Com,"quit")!=NULL) ){ DISCONNECT(descBR,Debug); PRINT_Kouleur("THANKS AND GOODBYE!","gris"); sleep(Tempdebug); Exit = 1; } if (strstr(Com,"READ")!=NULL || (strstr(Com,"read")!=NULL) ){ system("clear"); strncpy(n,Com+5,4); n[4]='\0';Number = atoi(n); if (Number < (nbmsg+1)) { mail mtmp = get_mail(Number); READMSG(mtmp,Debug); } else PRINTERROR("Nombre de message incorrecte"); cin.get(); } if (strstr(Com,"DELETE")!=NULL || (strstr(Com,"delete")!=NULL) ){ strncpy(n,Com+7,4); n[4]='\0';Number = atoi(n); if (Number < (nbmsg+1)) { DELETE(descBR,Number,Debug); DISCONNECT (descBR,Debug); descBR = CONNECT(Addrpop,Log,Pass,Debug); PRINTSTATEMENT("Mise a jour de la liste des messages..."); nbmsg--; REFRESH(descBR,nbmsg,Debug); } else PRINTERROR("Nombre de message incorrecte"); cin.get(); } if (strstr(Com,"WRITE")!=NULL || (strstr(Com,"write")!=NULL) ){ system("clear"); PRINT("Adresse du destinataire :"); SCAN (Rcptto); PRINT("Sujet :"); SCAN (Sujet); int descBrSmtp = CONNECTSmtp(Addrsmtp); SENDING(descBrSmtp,Log,Rcptto,Sujet,Debug); cin.get(); } if (strstr(Com,"SAVE")!=NULL || (strstr(Com,"save")!=NULL) ){ char Tmp [50]; strncpy(n,Com+5,3); n[4]='\0';Number = atoi(n); PRINT("Ou voulez vous sauvegarder votre Email?"); SCAN(Tmp); system("clear"); if (Number<(nbmsg+1)) { mail mtmp = get_mail(Number); SAVE(mtmp,Tmp,Debug); PRINTSTATEMENT("Sauvegarde du message termine..."); } else PRINTERROR("Nombre de message incorrecte"); cin.get(); } system("clear"); //Etape 4 - On a effectuer l'action on retourne a l'etape 3 //QUIT permet d'arreter l'application } } else { //Cas ou le mot de passe ou le login est incorrecte //On signale l'erreur PRINTERROR("Connexion refuse..."); PRINTERROR("Le mot de passe ou le login est incorrecte veuillez recommencer..."); //On relance l'application sleep(Tempdebug); execlp("./kkmail","./kkmail",NULL); } }//cas ou l'option --version est activé else if ((strcmp(argv[1],"--version")==0) || (strcmp(argv[1],"-v")==0)){ PRINT_Kouleur("kkmail (KKMAIL) Version 3.0.1 20060116","gris_p"); PRINT("Copyright ? 2006 Free Software Foundation, Inc."); PRINT("Ce logiciel est libre; voir les sources pour les conditions de copie."); PRINT("Il n'y a PAS GARANTIE; ni implicite pour le MARCHANDAGE ou pour un BUT PARTICULIER."); PRINT_Kouleur("Author : Kde Jdes","gris_p"); PRINT_Kouleur("URL : http://delfour.kevin.free.fr","gris_p"); }//cas ou l'option --help est activé else if ((strcmp(argv[1],"--help")==0) || (strcmp(argv[1],"-h")==0)){ PRINT_Kouleur("usage: kkmail [--debug|--help|--version]","gris_p"); PRINT("-d, --debug\t\tMode debogage du client kkmail"); PRINT("-h, --help\t\tAffiche l'aide du client kkmail"); PRINT("-v, --version\t\tAffiche la version du client kkmail"); }return 0;}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -