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

📄 smtpmodel.h

📁 DarkATLSmtp(SMTP COM 组件原创代码),注册后可在Delphi中发邮件。
💻 H
字号:
// SmtpModel.h : Declaration of the CSmtpModel
//作者:高越 邮箱:darkprince@v.cn
//QQ:1738387 (本人只接受技术探讨以及软件项目合作事宜,其他误扰)
#ifndef __SMTPMODEL_H_
#define __SMTPMODEL_H_

#include "resource.h"       // main symbols
#include "ProxyConnectSocket.h"
#include "DakComPtrList.h"
class CSmtpSocket;
/////////////////////////////////////////////////////////////////////////////
// CSmtpModel
class ATL_NO_VTABLE CSmtpModel : 
	public CComObjectRootEx<CComSingleThreadModel>,
	public CComCoClass<CSmtpModel, &CLSID_SmtpModel>,
	public ISupportErrorInfo,
	public IDispatchImpl<ISmtpModel, &IID_ISmtpModel, &LIBID_DARKSMTPLib>
{
public:
	STDMETHOD(SearchComUserByWordForWeb)(/*[in]*/ VARIANT bstMailPath,/*[in]*/ VARIANT bstWord,/*[out]*/ VARIANT* pMemberList);
	STDMETHOD(SeaComNameForWeb)(/*[in]*/ VARIANT bstMailPath,/*[in]*/ VARIANT bstUserName,/*[out]*/ VARIANT* pMemberList);
	STDMETHOD(AddComGroupUserForWeb)(/*[in]*/ VARIANT bstMailPath,/*[in]*/ VARIANT bstGroupName,/*[in]*/ VARIANT bstMemberName,/*[in]*/ VARIANT bstMemberNick);
	STDMETHOD(DelComGroupUserForWeb)(/*[in]*/ VARIANT bstMailPath,/*[in]*/ VARIANT bstGroupUserId);
	STDMETHOD(DelComGroupForWeb)(/*[in]*/ VARIANT bstMailPath,/*[in]*/ VARIANT bstGroupName);
	STDMETHOD(AddComGroupForWeb)(/*[in]*/ VARIANT bstMailPath,/*[in]*/ VARIANT bstGroupName);
	STDMETHOD(GetCompanyAddrTextForWeb)(VARIANT bstMailPath, VARIANT *pComAddrText);
	STDMETHOD(GetCompanyGroupListForWeb)(VARIANT bstMailPath,VARIANT* pMemberList);
	STDMETHOD(GetCompanyUserListForWeb)(/*[in]*/ VARIANT bstMailPath,/*[in]*/VARIANT bstGroupName,/*[out]*/ VARIANT* pMemberList);
	STDMETHOD(GetLocalHostIp)(/*[out]*/ VARIANT* pLocalIp);
	STDMETHOD(DelGroupUserForWeb)(/*[in]*/ VARIANT bstMailPath,/*[in]*/ VARIANT bstUserId,/*[in]*/ VARIANT bstGroupUserId);
	STDMETHOD(GetGroupUserListForWeb)(/*[in]*/ VARIANT bstMailPath,/*[in]*/ VARIANT bstUserId,/*[in]*/ VARIANT bstGroupName,/*[out]*/ VARIANT* pMemberList);
	STDMETHOD(AddGroupUserForWeb)(/*[in]*/ VARIANT bstMailPath,/*[in]*/ VARIANT bstUserId,/*[in]*/ VARIANT bstGroupName,/*[in]*/ VARIANT bstMemberName,/*[in]*/ VARIANT bstMemberNick,/*[in]*/ VARIANT bstMemberAddr,/*[in]*/ VARIANT bstMemberTel,/*[in]*/ VARIANT bstMemberRemark);
	STDMETHOD(GetGroupListForWeb)(/*[in]*/ VARIANT bstMailPath,/*[in]*/ VARIANT bstUserId,/*[out]*/ VARIANT* pGroupList);
	STDMETHOD(DelGroupNameForWeb)(/*[in]*/ VARIANT bstMailPath,/*[in]*/ VARIANT bstUserId,/*[in]*/ VARIANT bstGroupName);
	STDMETHOD(AddGroupNameForWeb)(/*[in]*/ VARIANT bstMailPath,/*[in]*/ VARIANT bstUserId,/*[in]*/ VARIANT bstGroupName);
	STDMETHOD(GetAssistInfoForWeb)(/*[in]*/ VARIANT bstMailPath,/*[in]*/ VARIANT bstUserId,/*[out]*/ VARIANT* pRejectMail,/*[out]*/ VARIANT* pEnableReply,/*[out]*/ VARIANT* pAutoReplyContent);
	STDMETHOD(CreateAssistInfoForWeb)(/*[in]*/ VARIANT bstMailPath,/*[in]*/ VARIANT bstUserId,/*[in]*/ VARIANT bstRejectMail,/*[in]*/ VARIANT bstEnableReply,/*[in]*/ VARIANT bstAutoReplyContent);
	STDMETHOD(GetSysInfoForWeb)(/*[in]*/ VARIANT bstMailPath,/*[in]*/ VARIANT bstUserId, /*[out]*/ VARIANT* pNickName,/*[out]*/ VARIANT* pNotWithOriMail,/*[out]*/ VARIANT* pMarkOriMsg,/*[out]*/ VARIANT* pSaveOutBox,/*[out]*/ VARIANT* pDelOption,/*[out]*/ VARIANT* pFullWarnRate,/*[out]*/ VARIANT* pRecvDelInServer);
	STDMETHOD(CreateSysInfoForWeb)(/*[in]*/ VARIANT bstMailPath,/*[in]*/ VARIANT bstUserId,/*[in]*/ VARIANT bstNickName,/*[in]*/ VARIANT bstNotWithOriMail,/*[in]*/ VARIANT bstMarkOriMsg,/*[in]*/ VARIANT bstSaveOutBox,/*[in]*/ VARIANT bstDelOption,/*[in]*/ VARIANT bstFullWarnRate,/*[in]*/ VARIANT bstRecvDelInServer);
	STDMETHOD(GetUserInfoForWeb)(/*[in]*/ VARIANT bstMailPath,/*[in]*/ VARIANT bstUserId,/*[out]*/ VARIANT* pTrueName,/*[out]*/ VARIANT* pGender,/*[out]*/ VARIANT* pBirth,/*[out]*/ VARIANT* pPersonalID,/*[out]*/ VARIANT* pMailBox,/*[out]*/ VARIANT* pCity,/*[out]*/ VARIANT* pEducation,/*[out]*/ VARIANT* pMaritalStatus,/*[out]*/ VARIANT* pJobType,/*[out]*/ VARIANT* pOccupation,/*[out]*/ VARIANT* pIncome,/*[out]*/ VARIANT* pNetCost,/*[out]*/ VARIANT* pEnquiry);
	STDMETHOD(CreateUserInfoForWeb)(/*[in]*/ VARIANT bstMailPath,/*[in]*/ VARIANT bstUserId,/*[in]*/ VARIANT bstTrueName,/*[in]*/ VARIANT bstGender,/*[in]*/ VARIANT bstBirth,/*[in]*/ VARIANT bstPersonalID,/*[in]*/ VARIANT bstMailBox,/*[in]*/ VARIANT bstCity,/*[in]*/ VARIANT bstEducation,/*[in]*/ VARIANT bstMaritalStatus,/*[in]*/ VARIANT bstJobType,/*[in]*/ VARIANT bstOccupation,/*[in]*/ VARIANT bstIncome,/*[in]*/ VARIANT bstNetCost,/*[in]*/ VARIANT bstEnquiry);
	STDMETHOD(GetLevelInfoForWeb)(/*[in]*/ VARIANT bstMailPath,/*[in]*/ VARIANT bstUserId,/*[out]*/ VARIANT* pMailBoxSize,/*[out]*/ VARIANT* pUserLevel);
	STDMETHOD(CreateLevelInfoForWeb)(/*[in]*/ VARIANT bstMailPath,/*[in]*/ VARIANT bstUserId,/*[in]*/ VARIANT bstMailBoxSize,/*[in]*/ VARIANT bstUserLevel);
	STDMETHOD(SaveMailToSaveBoxForWeb)(/*[in]*/ VARIANT bstMailPath,/*[in]*/ VARIANT bstUserId,/*[in]*/ VARIANT bstMsgId);
	STDMETHOD(ClearMailBoxSpace)(/*[in]*/ VARIANT bstMailPath,/*[in]*/ VARIANT bstUserId);
	STDMETHOD(DeleteAttachByNameForWeb)(VARIANT bstMailPath,VARIANT bstUserId,VARIANT bstMsgId,VARIANT bstAttachName);
	STDMETHOD(CreateMailDirForWeb)(/*[in]*/ VARIANT bstMailPath,/*[in]*/ VARIANT bstUserId,/*[in]*/ VARIANT bstMailOldIndex,/*[out]*/ VARIANT* pMailNewIndex );
	STDMETHOD(SendMailForWeb)(/*[in]*/ VARIANT bstMailPath,/*[in]*/ VARIANT bstUserId,/*[in]*/ VARIANT vbSave,/*[in]*/ VARIANT bstMsgId,/*[out]*/ VARIANT* pErrorString);
	STDMETHOD(SendMail)();
	STDMETHOD(Disconnect)();
	STDMETHOD(Connect)(/*[out]*/ VARIANT* pErrorInfo, /*[out]*/VARIANT* pSuccess);
	STDMETHOD(Reset)();
	STDMETHOD(AddAttachment)(VARIANT bstrAttachPath);
	STDMETHOD(AddReplyTo)(VARIANT bstrReplyTo,VARIANT bstrReplyToName);
	STDMETHOD(AddCC)(VARIANT bstrCC,VARIANT bstrCCName);
	STDMETHOD(AddBCC)(VARIANT bstrBCC,VARIANT bstrBCCName);
	STDMETHOD(AddAddress)(VARIANT bstrAddress,VARIANT bstrToName);
	STDMETHOD(get_ProxyHostName)(/*[out, retval]*/ VARIANT *pVal);
	STDMETHOD(put_ProxyHostName)(/*[in]*/ VARIANT newVal);
	STDMETHOD(get_ProxyPort)(/*[out, retval]*/ long *pVal);
	STDMETHOD(put_ProxyPort)(/*[in]*/ long newVal);
	STDMETHOD(get_ProxyPassWord)(/*[out, retval]*/ VARIANT *pVal);
	STDMETHOD(put_ProxyPassWord)(/*[in]*/ VARIANT newVal);
	STDMETHOD(get_ProxyUserName)(/*[out, retval]*/ VARIANT *pVal);
	STDMETHOD(put_ProxyUserName)(/*[in]*/ VARIANT newVal);
	STDMETHOD(get_ProxyType)(/*[out, retval]*/ long *pVal);
	STDMETHOD(put_ProxyType)(/*[in]*/ long newVal);
	STDMETHOD(get_Subject)(/*[out, retval]*/ VARIANT *pVal);
	STDMETHOD(put_Subject)(/*[in]*/ VARIANT newVal);
	STDMETHOD(get_Body)(/*[out, retval]*/ VARIANT *pVal);
	STDMETHOD(put_Body)(/*[in]*/ VARIANT newVal);
	STDMETHOD(get_FromName)(/*[out, retval]*/ VARIANT *pVal);
	STDMETHOD(put_FromName)(/*[in]*/ VARIANT newVal);
	STDMETHOD(get_From)(/*[out, retval]*/ VARIANT *pVal);
	STDMETHOD(put_From)(/*[in]*/ VARIANT newVal);
	STDMETHOD(get_PassWord)(/*[out, retval]*/ VARIANT *pVal);
	STDMETHOD(put_PassWord)(/*[in]*/ VARIANT newVal);
	STDMETHOD(get_UserName)(/*[out, retval]*/ VARIANT *pVal);
	STDMETHOD(put_UserName)(/*[in]*/ VARIANT newVal);
	STDMETHOD(get_HostName)(/*[out, retval]*/ VARIANT *pVal);
	STDMETHOD(put_HostName)(/*[in]*/ VARIANT newVal);
	STDMETHOD(get_Port)(/*[out, retval]*/ long *pVal);
	STDMETHOD(put_Port)(/*[in]*/ long newVal);
	STDMETHOD(get_IsHTML)(/*[out, retval]*/ VARIANT *pVal);
	STDMETHOD(put_IsHTML)(/*[in]*/ VARIANT newVal);

	CSmtpModel()
	{
	}

DECLARE_REGISTRY_RESOURCEID(IDR_SMTPMODEL)
//DECLARE_NOT_AGGREGATABLE(CSmtpModel)

DECLARE_PROTECT_FINAL_CONSTRUCT()

BEGIN_COM_MAP(CSmtpModel)
	COM_INTERFACE_ENTRY(ISmtpModel)
	COM_INTERFACE_ENTRY(IDispatch)
	COM_INTERFACE_ENTRY(ISupportErrorInfo)
END_COM_MAP()

// ISupportsErrorInfo
	STDMETHOD(InterfaceSupportsErrorInfo)(REFIID riid);

	HRESULT		FinalConstruct();
	void		FinalRelease();

// ISmtpModel
private:
	CDakComPtrList m_arrTo; //目的地址
	CDakComPtrList m_arrReplyTo;  //回复地址
	CDakComPtrList m_arrCC; //抄送地址
	CDakComPtrList m_arrBCC; //密文抄送地址
	CDakComPtrList m_arrAttachment; //附件数组

	CSmtpSocket*		m_pSmtpConnect;//connection socket class
	BOOL m_bHTML; //附件是否为HTML文件
	long m_nHostPort; //远程SMTP端口
	CComBSTR m_bstrHostAddress; //远程SMTP地址
	CComBSTR m_bstrUserName; //发送用户ID
	CComBSTR m_bstrPassWord; //发送用户密码

	CComBSTR m_bstrFrom; //发送用户MAIL地址
	CComBSTR m_bstrFromName; //发送用户名称
	CComBSTR m_bstrBody; //正文
	CComBSTR m_bstrSubject; //标题
	//About proxy information
	ENUM_PROXYTYPE		m_enumProxyType;//proxy type
	CComBSTR			m_bstrProxyUserName;//proxy user id;
	CComBSTR			m_bstrProxyPassWord;//proxy password;
	long				m_nProxyPort;//the proxy server port
	CComBSTR			m_bstrProxyHostName;//the proxy server host name or ip
private:
	CString CreateMailDirForWeb(CString strMailPath,CString strUserId);
	

};

#endif //__SMTPMODEL_H_

⌨️ 快捷键说明

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