mailmsg.h
来自「一个支持FTP,SFTP的客户端程序」· C头文件 代码 · 共 295 行
H
295 行
///////////////////////////////////////////////////////////////////////////////
//
// Module: MailMsg.h
//
// Desc: This class encapsulates the MAPI and CMC mail functions.
//
// Copyright (c) 2003 Michael Carruth
//
///////////////////////////////////////////////////////////////////////////////
#ifndef _MAILMSG_H_
#define _MAILMSG_H_
#if _MSC_VER >= 1000
#pragma once
#endif // _MSC_VER >= 1000
#include <xcmc.h> // CMC function defs
#include <mapi.h> // MAPI function defs
#ifndef TStrStrMap
#include <map>
typedef std::map<CString, CString> TStrStrMap;
#endif // !defined TStrStrMap
//
// Define CMC entry points
//
typedef CMC_return_code (FAR PASCAL *LPCMCLOGON) \
(CMC_string, CMC_string, CMC_string, CMC_object_identifier, \
CMC_ui_id, CMC_uint16, CMC_flags, CMC_session_id FAR*, \
CMC_extension FAR*);
typedef CMC_return_code (FAR PASCAL *LPCMCSEND) \
(CMC_session_id, CMC_message FAR*, CMC_flags, \
CMC_ui_id, CMC_extension FAR*);
typedef CMC_return_code (FAR PASCAL *LPCMCLOGOFF) \
(CMC_session_id, CMC_ui_id, CMC_flags, CMC_extension FAR*);
typedef CMC_return_code (FAR PASCAL *LPCMCQUERY) \
(CMC_session_id, CMC_enum, CMC_buffer, CMC_extension FAR*);
////////////////////////////// Class Definitions /////////////////////////////
// ===========================================================================
// CMailMsg
//
// See the module comment at top of file.
//
class CMailMsg
{
public:
CMailMsg();
virtual ~CMailMsg();
//-----------------------------------------------------------------------------
// SetTo
// Sets the Email:To address
//
// Parameters
// sAddress Address
// sName Optional name
//
// Return Values
// CMailMsg reference
//
// Remarks
// Only one To address can be set. If called more than once
// the last address will be used.
//
CMailMsg&
SetTo(
CString sAddress,
CString sName = _T("")
);
//-----------------------------------------------------------------------------
// SetCc
// Sets the Email:Cc address
//
// Parameters
// sAddress Address
// sName Optional name
//
// Return Values
// CMailMsg reference
//
// Remarks
// Multiple Cc addresses can be set.
//
CMailMsg&
SetCc(
CString sAddress,
CString sName = _T("")
);
//-----------------------------------------------------------------------------
// SetBc
// Sets the Email:Bcc address
//
// Parameters
// sAddress Address
// sName Optional name
//
// Return Values
// CMailMsg reference
//
// Remarks
// Multiple Bcc addresses can be set.
//
CMailMsg&
SetBc(
CString sAddress,
CString sName = _T("")
);
//-----------------------------------------------------------------------------
// SetFrom
// Sets the Email:From address
//
// Parameters
// sAddress Address
// sName Optional name
//
// Return Values
// CMailMsg reference
//
// Remarks
// Only one From address can be set. If called more than once
// the last address will be used.
//
CMailMsg&
SetFrom(
CString sAddress,
CString sName = _T("")
);
//-----------------------------------------------------------------------------
// SetSubect
// Sets the Email:Subject
//
// Parameters
// sSubject Subject
//
// Return Values
// CMailMsg reference
//
// Remarks
// none
//
CMailMsg&
SetSubject(
CString sSubject
) {m_sSubject = sSubject; return *this;};
//-----------------------------------------------------------------------------
// SetMessage
// Sets the Email message body
//
// Parameters
// sMessage Message body
//
// Return Values
// CMailMsg reference
//
// Remarks
// none
//
CMailMsg&
SetMessage(
CString sMessage
) {m_sMessage = sMessage; return *this;};
//-----------------------------------------------------------------------------
// AddAttachment
// Attaches a file to the email
//
// Parameters
// sAttachment Fully qualified file name
// sTitle File display name
//
// Return Values
// CMailMsg reference
//
// Remarks
// none
//
CMailMsg&
AddAttachment(
CString sAttachment,
CString sTitle = _T("")
);
//-----------------------------------------------------------------------------
// Send
// Send the email.
//
// Parameters
// none
//
// Return Values
// TRUE if succesful
//
// Remarks
// First simple MAPI is used if unsucessful CMC is used.
//
BOOL Send();
protected:
//-----------------------------------------------------------------------------
// CMCSend
// Send email using CMC functions.
//
// Parameters
// none
//
// Return Values
// TRUE if successful
//
// Remarks
// none
//
BOOL CMCSend();
//-----------------------------------------------------------------------------
// MAPISend
// Send email using MAPI functions.
//
// Parameters
// none
//
// Return Values
// TRUE if successful
//
// Remarks
// none
//
BOOL MAPISend();
//-----------------------------------------------------------------------------
// Initialize
// Initialize MAPI32.dll
//
// Parameters
// none
//
// Return Values
// TRUE if successful
//
// Remarks
// none
//
BOOL Initialize();
//-----------------------------------------------------------------------------
// Uninitialize
// Uninitialize MAPI32.dll
//
// Parameters
// none
//
// Return Values
// void
//
// Remarks
// none
//
void Uninitialize();
TStrStrMap m_from; // From <address,name>
TStrStrMap m_to; // To <address,name>
TStrStrMap m_cc; // Cc <address,name>
TStrStrMap m_bcc; // Bcc <address,name>
TStrStrMap m_attachments; // Attachment <file,title>
CString m_sSubject; // EMail subject
CString m_sMessage; // EMail message
HMODULE m_hMapi; // Handle to MAPI32.DLL
LPCMCQUERY m_lpCmcQueryConfiguration; // Cmc func pointer
LPCMCLOGON m_lpCmcLogon; // Cmc func pointer
LPCMCSEND m_lpCmcSend; // Cmc func pointer
LPCMCLOGOFF m_lpCmcLogoff; // Cmc func pointer
LPMAPILOGON m_lpMapiLogon; // Mapi func pointer
LPMAPISENDMAIL m_lpMapiSendMail; // Mapi func pointer
LPMAPILOGOFF m_lpMapiLogoff; // Mapi func pointer
BOOL m_bReady; // MAPI is loaded
};
#endif // #ifndef _MAILMSG_H_
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?