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

📄 d_pop3.cpp

📁 一个SMTP邮件发送的源代码
💻 CPP
字号:
// D_Pop3.cpp : implementation file
//

#include "stdafx.h"
#include "InetServer.h"
#include "D_Pop3.h"
#include <direct.h>
#include "tools.h"
#include "D_Alias.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// D_Pop3 dialog


D_Pop3::D_Pop3(CWnd* pParent /*=NULL*/)
	: CDialog(D_Pop3::IDD, pParent)
{
	//{{AFX_DATA_INIT(D_Pop3)
	m_username = _T("");
	m_password = _T("");
	m_flags = _T("");
	m_comment = _T("");
	//}}AFX_DATA_INIT
}


void D_Pop3::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(D_Pop3)
	DDX_Control(pDX, IDC_LIST1, mc_list1);
	DDX_Text(pDX, IDC_EDIT2, m_username);
	DDX_Text(pDX, IDC_EDIT3, m_password);
	DDX_Text(pDX, IDC_EDIT1, m_flags);
	DDX_Text(pDX, IDC_COMMENT, m_comment);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(D_Pop3, CDialog)
	//{{AFX_MSG_MAP(D_Pop3)
	ON_BN_CLICKED(IDC_ADD, OnAdd)
	ON_NOTIFY(NM_CLICK, IDC_LIST1, OnClickList1)
	ON_NOTIFY(LVN_ITEMCHANGING, IDC_LIST1, OnItemchangingList1)
	ON_NOTIFY(LVN_ITEMCHANGED, IDC_LIST1, OnItemchangedList1)
	ON_BN_CLICKED(IDOK, OnOk)
	ON_BN_CLICKED(IDC_BUTTON3, OnButton3)
	ON_BN_CLICKED(IDC_BUTTON5, OnButton5)
	ON_BN_CLICKED(IDC_BUTTON1, OnButton1)
	ON_BN_CLICKED(IDC_ALIASES, OnAliases)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// D_Pop3 message handlers



					 

BOOL D_Pop3::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	CImageList	*m_pimagelistSmall;
	m_pimagelistSmall = new CImageList();
	m_pimagelistSmall->Create(16, 16, TRUE/*bMask*/, 1, 4);
	m_pimagelistSmall->Add(AfxGetApp()->LoadIcon(IDI_USER));

	CRect			rect;
	LV_COLUMN		lvcolumn;
	TCHAR			rgtsz[4][20] = {_T("Username"),_T("Password"),_T("Flags"),_T("Comment")};

	mc_list1.SetImageList(m_pimagelistSmall, LVSIL_SMALL);
	mc_list1.GetWindowRect(&rect);

		lvcolumn.mask = LVCF_FMT | LVCF_SUBITEM | LVCF_TEXT | LVCF_WIDTH;
		lvcolumn.fmt = LVCFMT_LEFT;
		lvcolumn.pszText = rgtsz[0];
		lvcolumn.iSubItem = 0;

		lvcolumn.cx = 100;  

		mc_list1.InsertColumn(0, &lvcolumn);  
				

		lvcolumn.pszText = rgtsz[1];
		lvcolumn.iSubItem = 1;
		lvcolumn.cx = 70;  
		
		mc_list1.InsertColumn(1, &lvcolumn);  
		

		lvcolumn.pszText = rgtsz[2];
		lvcolumn.iSubItem = 2;
		lvcolumn.cx = 80;  
		
		mc_list1.InsertColumn(2, &lvcolumn);  

		lvcolumn.pszText = rgtsz[3];
		lvcolumn.iSubItem = 3;
		lvcolumn.cx = 150;  
		
		mc_list1.InsertColumn(3, &lvcolumn);  
		

		LV_ITEM			lvitem;
		int iActualItem,iIcon;
		iIcon = 0;

//////////////////////////////////////////////////////////
char t1[255];
char t2[255];
char t3[255];
char t4[255];

FILE *stream;
char tempstr[255];
if( (stream  = fopen("popuser.ctl", "rt" )) != NULL )
  {

		while (!feof(stream))
		{
		fgets(tempstr,255,stream);
		if (!feof(stream))
		{
		UpdateData(TRUE);
					sprintf(t1,"");
				sprintf(t2,"");
				sprintf(t3,"");
				sprintf(t4,"");


					int pusrpos = 0;
					char seps[] = ";\r\n";
					char tempstr2[255];
					char *token;

					token = strtok( tempstr, seps );
					while( token != NULL )
					{
					sprintf(tempstr2,"%s",token);
					
					if (pusrpos == 0)
					{
						
						sprintf(t2,"%s",tempstr2);

					}

					if (pusrpos == 1)
					{
						
						sprintf(t3,"%s",tempstr2);

					}

					if (pusrpos == 2)
					{
						
						sprintf(t1,"%s",tempstr2);

					}
					
					if (pusrpos == 3)
					{
						
						sprintf(t4,"%s",tempstr2);

					}
					
					pusrpos++;
					token = strtok( NULL, seps );
					}

				UINT x = 0;
				for (x = 1;x<=strlen(t1)-1;x++) t1[x-1] = t1[x];
				for (x = 1;x<=strlen(t2)-1;x++) t2[x-1] = t2[x];
				for (x = 1;x<=strlen(t3)-1;x++) t3[x-1] = t3[x];
				for (x = 1;x<=strlen(t4)-1;x++) t4[x-1] = t4[x];
				t1[strlen(t1)-2] = '\0';
				t2[strlen(t2)-2] = '\0';
				t3[strlen(t3)-2] = '\0';
				t4[strlen(t4)-2] = '\0';
					

			lvitem.mask = LVIF_TEXT | LVIF_IMAGE;
			lvitem.iItem = 0;
			lvitem.iSubItem = 0;
			lvitem.iImage = iIcon;
			lvitem.pszText = t2;
			
			iActualItem = mc_list1.InsertItem(&lvitem);
			
			lvitem.mask = LVIF_TEXT;
			lvitem.iItem = iActualItem;
			lvitem.iSubItem = 1;
			lvitem.pszText = t3;
			mc_list1.SetItem(&lvitem);

			lvitem.iSubItem = 2;
			lvitem.pszText = t1;
			mc_list1.SetItem(&lvitem);

			lvitem.iSubItem = 3;
			lvitem.pszText = t4;
			mc_list1.SetItem(&lvitem);


			

UpdateData(FALSE);
}
}
fclose(stream);
}
else
{
MessageBox("Could not open popuser.ctl!");
}







UpdateData(FALSE);


	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

void D_Pop3::OnAdd() 
{
char tempstr[255];
char tempstr1[255];

		LV_ITEM			lvitem;
		int iActualItem,iIcon;
		iIcon = 0;

		UpdateData(TRUE);

		if (m_username == "")
		{
			MessageBox("You must enter a username!");
			return;

		}
		if (m_password == "")
		{
			MessageBox("You must enter a password!");
			return;

		}
			lvitem.mask = LVIF_TEXT | LVIF_IMAGE;
			lvitem.iItem = 0;
			lvitem.iSubItem = 0;
			lvitem.iImage = iIcon;
			sprintf(tempstr,"%s",m_username);
			lvitem.pszText = tempstr;
			iActualItem = mc_list1.InsertItem(&lvitem);
			
			lvitem.mask = LVIF_TEXT;
			lvitem.iItem = iActualItem;
			lvitem.iSubItem = 1;
			sprintf(tempstr,"%s",m_password);
			sprintf(tempstr1,"%s",CreatePassword(tempstr));
			lvitem.pszText = tempstr1;
			mc_list1.SetItem(&lvitem);
			
			lvitem.iSubItem = 2;
			sprintf(tempstr,"%s",m_flags);
			lvitem.pszText = tempstr;
			mc_list1.SetItem(&lvitem);

			lvitem.iSubItem = 3;
			sprintf(tempstr,"%s",m_comment);
			lvitem.pszText = tempstr;
			mc_list1.SetItem(&lvitem);

UpdateData(FALSE);
}

void D_Pop3::OnClickList1(NMHDR* pNMHDR, LRESULT* pResult) 
{
	UpdateData(TRUE);
	m_flags =  mc_list1.GetItemText(mc_list1.GetNextItem(-1,LVNI_SELECTED),2);
	m_username =  mc_list1.GetItemText(mc_list1.GetNextItem(-1,LVNI_SELECTED),0);
	m_password =  "";
	m_comment =  mc_list1.GetItemText(mc_list1.GetNextItem(-1,LVNI_SELECTED),3);
	UpdateData(FALSE);

	
	*pResult = 0;
}

void D_Pop3::OnItemchangingList1(NMHDR* pNMHDR, LRESULT* pResult) 
{
	NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
	UpdateData(TRUE);
	m_flags=  mc_list1.GetItemText(mc_list1.GetNextItem(-1,LVNI_SELECTED),2);
	m_username =  mc_list1.GetItemText(mc_list1.GetNextItem(-1,LVNI_SELECTED),0);
	m_password =  "";
	m_comment =  mc_list1.GetItemText(mc_list1.GetNextItem(-1,LVNI_SELECTED),3);
	UpdateData(FALSE);

	
	
	*pResult = 0;
}

void D_Pop3::OnItemchangedList1(NMHDR* pNMHDR, LRESULT* pResult) 
{
	NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
	
	UpdateData(TRUE);
	m_flags=  mc_list1.GetItemText(mc_list1.GetNextItem(-1,LVNI_SELECTED),2);
	m_username =  mc_list1.GetItemText(mc_list1.GetNextItem(-1,LVNI_SELECTED),0);
	m_password =  "";
	m_comment =  mc_list1.GetItemText(mc_list1.GetNextItem(-1,LVNI_SELECTED),3);
	UpdateData(FALSE);

	
	
	*pResult = 0;
}

void D_Pop3::OnOk() 
{
UpdateData(TRUE);


FILE *stream;
   if( (stream  = fopen("popuser.ctl", "wt" )) != NULL )
   {
	   CString flags;
	   CString username;
	   CString passw;
	   CString comment;


char pathx[255];
for (int i = 0;i<=mc_list1.GetItemCount()-1;i++)
{
username = mc_list1.GetItemText( i, 0);
passw = mc_list1.GetItemText( i, 1);
flags = mc_list1.GetItemText( i, 2 );
comment = mc_list1.GetItemText( i, 3 );

sprintf(pathx,"mail\\%s",username);
mkdir(pathx);

fprintf(stream,"\'%s\';\'%s\';\'%s\';\'%s\'\r\n",username,passw,flags,comment);
}

fclose(stream);
}
else
{
MessageBox("Could not save popuser.ctl!");

}



	CDialog::OnOK();
	
}

void D_Pop3::OnButton3() 
{

if (mc_list1.GetNextItem(-1,LVNI_SELECTED) == -1) return;

UpdateData(TRUE);
mc_list1.DeleteItem(mc_list1.GetNextItem(-1,LVNI_SELECTED));
	
}




void D_Pop3::OnButton5() 
{

		if (mc_list1.GetNextItem(-1,LVNI_SELECTED) == -1) return;



		LV_ITEM			lvitem;

		char nopass[255];
		UpdateData(TRUE);

		if (m_username == "")
		{
			MessageBox("You must enter a username!");
			return;

		}
		if (m_password == "")
		{
			MessageBox("No password entered. leaving the old one");
			sprintf(nopass,"%s",mc_list1.GetItemText( mc_list1.GetNextItem(-1,LVNI_SELECTED), 1));

		}

char t1[255];
char t2[255];
char t3[255];
char t4[255];
char tempstr1[255];
sprintf(t1,"%s",m_username);
sprintf(t2,"%s",m_password);
sprintf(t3,"%s",m_flags);
sprintf(t4,"%s",m_comment);
			


			lvitem.mask = LVIF_TEXT;
			lvitem.iItem = mc_list1.GetNextItem(-1,LVNI_SELECTED);
			lvitem.iSubItem = 0;
			lvitem.iImage = 0;
			lvitem.pszText = t1;
			mc_list1.SetItem(&lvitem);


			if (strlen(t2) != 0)
			{
			lvitem.iSubItem = 1;
			MessageBox("OK");
			sprintf(tempstr1,"%s",CreatePassword(t2));
			lvitem.pszText = tempstr1;
			mc_list1.SetItem(&lvitem);
			}
			else
			{
			lvitem.iSubItem = 1;
			lvitem.pszText = nopass;
			mc_list1.SetItem(&lvitem);
			}


			lvitem.iSubItem = 2;
			lvitem.pszText = t3;
			mc_list1.SetItem(&lvitem);

			lvitem.iSubItem = 3;
			lvitem.pszText = t4;
			mc_list1.SetItem(&lvitem);
			
			

			m_flags = t3;
			m_comment = t4;
			m_username = t1;
			UpdateData(FALSE);


}




void D_Pop3::OnButton1() 
{
	MessageBox("Enter one or more flags here:\r\n"
		"T\t user has telnet access\r\n"
		"O\t Telnet Operator access (requires T)\r\n\tUser can delete and create new users via the telnet interface"
		
		);
}

void D_Pop3::OnAliases() 
{
	D_Alias dlg;
	dlg.DoModal();
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -