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

📄 smtpmodel.cpp

📁 DarkATLSmtp(SMTP COM 组件原创代码),注册后可在Delphi中发邮件。
💻 CPP
📖 第 1 页 / 共 5 页
字号:
	CString strRecvDelInServer=GetValueByKeyFromBuf(strContentTemp,STR_KEY_RECVDELINSERVER);
	CComBSTR bstTemp=strNickName;
	pNickName->vt=VT_BSTR;
	pNickName->bstrVal=bstTemp.Detach();

	bstTemp=strNotWithOriMail;
	pNotWithOriMail->vt=VT_BSTR;
	pNotWithOriMail->bstrVal=bstTemp.Detach();

	bstTemp=strMarkOriMsg;
	pMarkOriMsg->vt=VT_BSTR;
	pMarkOriMsg->bstrVal=bstTemp.Detach();

	bstTemp=strSaveOutBox;
	pSaveOutBox->vt=VT_BSTR;
	pSaveOutBox->bstrVal=bstTemp.Detach();

	bstTemp=strDelOption;
	pDelOption->vt=VT_BSTR;
	pDelOption->bstrVal=bstTemp.Detach();

	bstTemp=strFullWarnRate;
	pFullWarnRate->vt=VT_BSTR;
	pFullWarnRate->bstrVal=bstTemp.Detach();

	bstTemp=strRecvDelInServer;
	pRecvDelInServer->vt=VT_BSTR;
	pRecvDelInServer->bstrVal=bstTemp.Detach();
	return S_OK;
}

STDMETHODIMP CSmtpModel::GetAssistInfoForWeb(VARIANT bstMailPath, VARIANT bstUserId, 
											 VARIANT *pRejectMail, VARIANT *pEnableReply, 
											 VARIANT *pAutoReplyContent)
{
	// TODO: Add your implementation code here
	USES_CONVERSION;
	char* pMailPath;
	char* pUserId;
	VARIANTTOCHAR(bstMailPath,pMailPath);
	VARIANTTOCHAR(bstUserId,pUserId);
	CString strMailPath=pMailPath;
	CString strUserId=pUserId;
	strMailPath.TrimLeft();strMailPath.TrimRight();
	strUserId.TrimLeft();strUserId.TrimRight();
	if(strMailPath.IsEmpty()||strUserId.IsEmpty())
		return S_FALSE;

	if(strMailPath.GetAt(strMailPath.GetLength()-1)!='\\')
		strMailPath+='\\';
	CString strMailPathTemp=strMailPath;
	strMailPathTemp+=strUserId;
	strMailPathTemp+='\\';	
	CString strAssistIniPath=strMailPathTemp+STR_FILENAME_ASSISTINFO;

	CString strContentTemp;
	GetContentFromTextFile(strAssistIniPath,&strContentTemp);
	CString strRejectMail=GetValueByKeyFromBuf(strContentTemp,STR_KEY_REJECTMAIL);
	CString strEnableReply=GetValueByKeyFromBuf(strContentTemp,STR_KEY_ENABLEREPLY);
	CString strAutoReplyContent=GetValueByKeyFromBuf(strContentTemp,STR_KEY_AUTOREPLYCONTENT);

	CComBSTR bstTemp=strRejectMail;
	pRejectMail->vt=VT_BSTR;
	pRejectMail->bstrVal=bstTemp.Detach();

	bstTemp=strEnableReply;
	pEnableReply->vt=VT_BSTR;
	pEnableReply->bstrVal=bstTemp.Detach();

	bstTemp=strAutoReplyContent;
	pAutoReplyContent->vt=VT_BSTR;
	pAutoReplyContent->bstrVal=bstTemp.Detach();
	return S_OK;
}

STDMETHODIMP CSmtpModel::GetLevelInfoForWeb(VARIANT bstMailPath, VARIANT bstUserId, 
											VARIANT *pMailBoxSize, VARIANT *pUserLevel)
{
	// TODO: Add your implementation code here
	USES_CONVERSION;
	char* pMailPath;
	char* pUserId;
	VARIANTTOCHAR(bstMailPath,pMailPath);
	VARIANTTOCHAR(bstUserId,pUserId);
	CString strMailPath=pMailPath;
	CString strUserId=pUserId;
	strMailPath.TrimLeft();strMailPath.TrimRight();
	strUserId.TrimLeft();strUserId.TrimRight();
	if(strMailPath.IsEmpty()||strUserId.IsEmpty())
		return S_FALSE;

	if(strMailPath.GetAt(strMailPath.GetLength()-1)!='\\')
		strMailPath+='\\';
	CString strMailPathTemp=strMailPath;
	strMailPathTemp+=strUserId;
	strMailPathTemp+='\\';	
	CString strLevelIniPath=strMailPathTemp+STR_FILENAME_LEVELINFO;

	CString strContentTemp;
	GetContentFromTextFile(strLevelIniPath,&strContentTemp);
	CString strMailBoxSize="";
	strMailBoxSize=GetValueByKeyFromBuf(strContentTemp,STR_KEY_MAILBOXSIZE);
	CString strUserLevel="";
	strUserLevel=GetValueByKeyFromBuf(strContentTemp,STR_KEY_USERLEVEL);
	pMailBoxSize->vt=VT_I4;
	pMailBoxSize->lVal=atoi(strMailBoxSize);
	pUserLevel->vt=VT_I4;
	pUserLevel->lVal=atoi(strUserLevel);
	return S_OK;
}

STDMETHODIMP CSmtpModel::CreateSysInfoForWeb(VARIANT bstMailPath, VARIANT bstUserId, 
											 VARIANT bstNickName, VARIANT bstNotWithOriMail, 
											 VARIANT bstMarkOriMsg, VARIANT bstSaveOutBox, 
											 VARIANT bstDelOption, VARIANT bstFullWarnRate,
											 VARIANT bstRecvDelInServer)
{
	// TODO: Add your implementation code here
	USES_CONVERSION;
	char* pMailPath;
	char* pUserId;
	VARIANTTOCHAR(bstMailPath,pMailPath);
	VARIANTTOCHAR(bstUserId,pUserId);
	CString strMailPath=pMailPath;
	CString strUserId=pUserId;
	strMailPath.TrimLeft();strMailPath.TrimRight();
	strUserId.TrimLeft();strUserId.TrimRight();
	if(strMailPath.IsEmpty()||strUserId.IsEmpty())
		return S_FALSE;

	if(strMailPath.IsEmpty()||strUserId.IsEmpty())
		return S_FALSE;
	if(strMailPath.GetAt(strMailPath.GetLength()-1)!='\\')
		strMailPath+='\\';
	CString strMailPathTemp=strMailPath;
	strMailPathTemp+=strUserId;
	strMailPathTemp+='\\';
	::CreateDirectory(strMailPathTemp,NULL);
	CString strSysInfoPath=strMailPathTemp+STR_FILENAME_SYSINFO;
	HANDLE hFile=CreateFile(strSysInfoPath,GENERIC_WRITE,0,NULL,CREATE_ALWAYS,
		FILE_ATTRIBUTE_NORMAL,(HANDLE)NULL);
	if((HANDLE)hFile==INVALID_HANDLE_VALUE)
		return S_OK;
	
	CString strNickName;
	char* pNickName;
	VARIANTTOCHAR(bstNickName,pNickName);
	strNickName=pNickName;
	CString strTemp=STR_KEY_NICKNAME;
	strTemp+=strNickName;
	strTemp+="\r\n";
	WRITESTRINGTOFILE(strTemp);

	CString strNotWithOriMail;
	char* pNotWithOriMail;
	VARIANTTOCHAR(bstNotWithOriMail,pNotWithOriMail);
	strNotWithOriMail=pNotWithOriMail;
	strTemp=STR_KEY_NOTWITHORIMAIL;
	strTemp+=strNotWithOriMail;
	strTemp+="\r\n";
	WRITESTRINGTOFILE(strTemp);

	CString strMarkOriMsg;
	char* pMarkOriMsg;
	VARIANTTOCHAR(bstMarkOriMsg,pMarkOriMsg);
	strMarkOriMsg=pMarkOriMsg;
	strTemp=STR_KEY_MARKORIMSG;
	strTemp+=strMarkOriMsg;
	strTemp+="\r\n";
	WRITESTRINGTOFILE(strTemp);

	CString strSaveOutBox;
	char* pSaveOutBox;
	VARIANTTOCHAR(bstSaveOutBox,pSaveOutBox);
	strSaveOutBox=pSaveOutBox;
	strTemp=STR_KEY_SAVEOUTBOX;
	strTemp+=strSaveOutBox;
	strTemp+="\r\n";
	WRITESTRINGTOFILE(strTemp);

	CString strDelOption;
	char* pDelOption;
	VARIANTTOCHAR(bstDelOption,pDelOption);
	strDelOption=pDelOption;
	strTemp=STR_KEY_DELOPTION;
	strTemp+=strDelOption;
	strTemp+="\r\n";
	WRITESTRINGTOFILE(strTemp);

	CString strFullWarnRate;
	char* pFullWarnRate;
	VARIANTTOCHAR(bstFullWarnRate,pFullWarnRate);
	strFullWarnRate=pFullWarnRate;
	strTemp=STR_KEY_FULLWARNRATE;
	strTemp+=strFullWarnRate;
	strTemp+="\r\n";
	WRITESTRINGTOFILE(strTemp);

	CString strRecvDelInServer;
	char* pRecvDelInServer;
	VARIANTTOCHAR(bstRecvDelInServer,pRecvDelInServer);
	strRecvDelInServer=pRecvDelInServer;
	strTemp=STR_KEY_RECVDELINSERVER;
	strTemp+=strRecvDelInServer;
	strTemp+="\r\n";
	WRITESTRINGTOFILE(strTemp);

	CloseHandle(hFile);
	return S_OK;
}

STDMETHODIMP CSmtpModel::CreateUserInfoForWeb(VARIANT bstMailPath, VARIANT bstUserId, 
											  VARIANT bstTrueName, VARIANT bstGender, 
											  VARIANT bstBirth, VARIANT bstPersonalID, 
											  VARIANT bstMailBox, VARIANT bstCity, 
											  VARIANT bstEducation, 
											  VARIANT bstMaritalStatus, 
											  VARIANT bstJobType, VARIANT bstOccupation, 
											  VARIANT bstIncome, VARIANT bstNetCost, 
											  VARIANT bstEnquiry)
{
	// TODO: Add your implementation code here
	USES_CONVERSION;
	char* pMailPath;
	char* pUserId;
	VARIANTTOCHAR(bstMailPath,pMailPath);
	VARIANTTOCHAR(bstUserId,pUserId);
	CString strMailPath=pMailPath;
	CString strUserId=pUserId;
	strMailPath.TrimLeft();strMailPath.TrimRight();
	strUserId.TrimLeft();strUserId.TrimRight();
	if(strMailPath.IsEmpty()||strUserId.IsEmpty())
		return S_FALSE;

	if(strMailPath.IsEmpty()||strUserId.IsEmpty())
		return S_FALSE;
	if(strMailPath.GetAt(strMailPath.GetLength()-1)!='\\')
		strMailPath+='\\';
	CString strMailPathTemp=strMailPath;
	strMailPathTemp+=strUserId;
	strMailPathTemp+='\\';
	::CreateDirectory(strMailPathTemp,NULL);
	CString strUserInfoPath=strMailPathTemp+STR_FILENAME_USERINFO;
	HANDLE hFile=CreateFile(strUserInfoPath,GENERIC_WRITE,0,NULL,CREATE_ALWAYS,
		FILE_ATTRIBUTE_NORMAL,(HANDLE)NULL);
	if((HANDLE)hFile==INVALID_HANDLE_VALUE)
		return S_OK;

	CString strTruePath;
	char* pTruePath;
	VARIANTTOCHAR(bstTrueName,pTruePath);
	strTruePath=pTruePath;
	CString strTemp=STR_KEY_TRUENAME;
	strTemp+=strTruePath;
	strTemp+="\r\n";
	WRITESTRINGTOFILE(strTemp);

	CString strGender;
	char* pGender;
	VARIANTTOCHAR(bstGender,pGender);
	strGender=pGender;
	strTemp=STR_KEY_GENDER;
	strTemp+=strGender;
	strTemp+="\r\n";
	WRITESTRINGTOFILE(strTemp);

	CString strBirth;
	char* pBirth;
	VARIANTTOCHAR(bstBirth,pBirth);
	strBirth=pBirth;
	strTemp=STR_KEY_BIRTH;
	strTemp+=strBirth;
	strTemp+="\r\n";
	WRITESTRINGTOFILE(strTemp);

	CString strPersonalID;
	char* pPersonalID;
	VARIANTTOCHAR(bstPersonalID,pPersonalID);
	strPersonalID=pPersonalID;
	strTemp=STR_KEY_PERSONALID;
	strTemp+=strPersonalID;
	strTemp+="\r\n";
	WRITESTRINGTOFILE(strTemp);

	CString strMailBox;
	char* pMailBox;
	VARIANTTOCHAR(bstMailBox,pMailBox);
	strMailBox=pMailBox;
	strTemp=STR_KEY_MAILBOX;
	strTemp+=strMailBox;
	strTemp+="\r\n";
	WRITESTRINGTOFILE(strTemp);

	CString strCity;
	char* pCity;
	VARIANTTOCHAR(bstCity,pCity);
	strCity=pCity;
	strTemp=STR_KEY_CITY;
	strTemp+=strCity;
	strTemp+="\r\n";
	WRITESTRINGTOFILE(strTemp);

	CString strEducation;
	char* pEducation;
	VARIANTTOCHAR(bstEducation,pEducation);
	strEducation=pEducation;
	strTemp=STR_KEY_EDUCATION;
	strTemp+=strEducation;
	strTemp+="\r\n";
	WRITESTRINGTOFILE(strTemp);

	CString strMaritalStatus;
	char* pMaritalStatus;
	VARIANTTOCHAR(bstMaritalStatus,pMaritalStatus);
	strMaritalStatus=pMaritalStatus;
	strTemp=STR_KEY_MARITALSTATUS;
	strTemp+=strMaritalStatus;
	strTemp+="\r\n";
	WRITESTRINGTOFILE(strTemp);

	CString strJobType;
	char* pJobType;
	VARIANTTOCHAR(bstJobType,pJobType);
	strJobType=pJobType;
	strTemp=STR_KEY_JOBTYPE;
	strTemp+=strJobType;
	strTemp+="\r\n";
	WRITESTRINGTOFILE(strTemp);

	CString strOccupation;
	char* pOccupation;
	VARIANTTOCHAR(bstOccupation,pOccupation);
	strOccupation=pOccupation;
	strTemp=STR_KEY_OCCUPATION;
	strTemp+=strOccupation;
	strTemp+="\r\n";
	WRITESTRINGTOFILE(strTemp);

	CString strIncome;
	char* pIncome;
	VARIANTTOCHAR(bstIncome,pIncome);
	strIncome=pIncome;
	strTemp=STR_KEY_INCOME;
	strTemp+=strIncome;
	strTemp+="\r\n";
	WRITESTRINGTOFILE(strTemp);

	CString strNetCost;
	char* pNetCost;
	VARIANTTOCHAR(bstNetCost,pNetCost);
	strNetCost=pNetCost;
	strTemp=STR_KEY_NETCOST;
	strTemp+=strNetCost;
	strTemp+="\r\n";
	WRITESTRINGTOFILE(strTemp);

	CString strEnquiry;
	char* pEnquiry;
	VARIANTTOCHAR(bstEnquiry,pEnquiry);
	strEnquiry=pEnquiry;
	strTemp=STR_KEY_ENQUIRY;
	strTemp+=strEnquiry;
	strTemp+="\r\n";
	WRITESTRINGTOFILE(strTemp);

	CloseHandle(hFile);
	
	return S_OK;
}

STDMETHODIMP CSmtpModel::DelGroupNameForWeb(VARIANT bstMailPath, VARIANT bstUserId, 
											VARIANT bstGroupName)
{
	// TODO: Add your implementation code here
	USES_CONVERSION;
	char* pMailPath;
	char* pUserId;
	char* pGroupName;
	VARIANTTOCHAR(bstMailPath,pMailPath);
	VARIANTTOCHAR(bstUserId,pUserId);
	VARIANTTOCHAR(bstGroupName,pGroupName);
	CString strMailPath=pMailPath;
	CString strUserId=pUserId;
	CString strGroupName=pGroupName;
	strMailPath.TrimLeft();strMailPath.TrimRight();
	strUserId.TrimLeft();strUserId.TrimRight();
	strGroupName.TrimLeft();strGroupName.TrimRight();
	if(strMailPath.IsEmpty()||strUserId.IsEmpty()||strGroupName.IsEmpty())
		return S_FALSE;
	if(strMailPath.GetAt(strMailPath.GetLength()-1)!='\\')
		strMailPath+='\\';
	CString strMailPathTemp=strMailPath;
	strMailPathTemp+=strUserId;
	strMailPathTemp+='\\';
	::CreateDirectory(strMailPathTemp,NULL);
	CString strGroupIniPath=strMailPathTemp+STR_FILENAME_GROUPLIST;

	DelGroupNameToIni(strGroupIniPath,strGroupName);
	return S_OK;
}

STDMETHODIMP CSmtpModel::DelGroupUserForWeb(VARIANT bstMailPath, VARIANT bstUserId, 
											VARIANT bstGroupUserId)
{
	// TODO: Add your implementation code here
	USES_CONVERSION;
	char* pMailPath;
	char* pUserId;
	char* pGroupUserId;
	VARIANTTOCHAR(bstMailPath,pMailPath);
	VARIANTTOCHAR(bstUserId,pUserId);
	VARIANTTOCHAR(bstGroupUserId,pGroupUserId);
	CString strMailPath=pMailPath;
	CString strUserId=pUserId;
	CString strGroupUserId=pGroupUserId;
	strMailPath.TrimLeft();strMailPath.TrimRight();
	strUserId.TrimLeft();strUserId.TrimRight();
	strGroupUserId.TrimLeft();strGroupUserId.TrimRight();
	if(strMailPath.IsEmpty()||strUserId.IsEmpty()||strGroupUserId.IsEmpty())
		return S_FALSE;
	if(strMailPath.GetAt(strMailPath.GetLength()-1)!='\\')
		strMailPath+='\\';
	CString strMailPathTemp=strMailPath;
	strMailPathTemp+=strUserId;
	strMailPathTemp+='\\';
	CString strGroupUserIniPath=strMailPathTemp+STR_FILENAME_GROUPUSERLIST;
	DelGroupUserToIni(strGroupUserIniPath,strGroupUserId);
	return S_OK;
}


STDMETHODIMP CSmtpModel::GetGroupUserListForWeb(VARIANT bstMailPath, VARIANT bstUserId, 
												VARIANT bstGroupName, VARIANT *pMemberList)
{
	// TODO: Add your implementation code here
	USES_CONVERSION;
	char* pMailPath;
	char* pUserId;
	char* pGroupName;
	VARIANTTOCHAR(bstMailPath,pMailPath);
	VARIANTTOCHAR(bstUserId,pUserId);
	VARIANTTOCHAR(bstGroupName,pGroupName);
	CString strMailPath=pMailPath;
	CString strUserId=pUserId;
	CString strGroupName=pGroupName;
	strMailPath.TrimLeft();strMailPath.TrimRight();
	strUserId.TrimLeft();strUserId.TrimRight();
	strGroupName.TrimLeft();strGroupName.TrimRight();
	if(strMailPath.IsEmpty()||strUserId.IsEmpty())
		return S_FALSE;
	if(strMailPath.GetAt(strMailPath.GetLength()-1)!='\\')
		strMailPath+='\\';
	CString strMailPathTemp=strMailPath;
	strMailPathTemp+=strUserId;
	strMailPathTemp+='\\';

⌨️ 快捷键说明

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