⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 kkmail.cc

📁 客户端可以发送邮件到指定的信箱 服务器端可以接受邮件
💻 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 + -