WEB开发网
开发学院软件开发VC 用Visual C++编写电子邮件程序 阅读

用Visual C++编写电子邮件程序

 2010-09-29 20:03:32 来源:WEB开发网   
核心提示: 3-3-3 添加附件下面的程序示例将演示如何在电子邮件中包含附件,只有一点需要说明:MapiFileDesc结构中flFlags的值,用Visual C++编写电子邮件程序(9),详见表6,表6:MapiFileDesc结构中flFlags的值 值 意义 MAPI_OLE 附件是OLE对象,需要

3-3-3 添加附件

下面的程序示例将演示如何在电子邮件中包含附件。只有一点需要说明:MapiFileDesc结构中flFlags的值,详见表6。

表6:MapiFileDesc结构中flFlags的值

值 意义

MAPI_OLE 附件是OLE对象。

MAPI_OLE_STATIC 附件是静态OLE对象。

0 附件将被视为数据文件

程序示例:

// 设置附件信息
CString sPath, sFileName;
MapiFileDesc FileInfo;
char path[512];
char filename[512];
if (sAttachment == “”)
message.nFileCount = 0;
else
{
int nPos = sAttachment.ReverseFind(‘\’);
if (nPos == -1)
{
sPath = sAttachment;
}
else
{
sPath = sAttachment;
sFilename = sAttachment.Mid(nPos +1);
}
strcpy(path, sPath);
strcpy(filename, sFilename);

message.nFileCount = 1;
FileInfo.ulReserved = 0;

FileInfo.flFlags = 0;

FileInfo.nPosition = sMessage.GetLength() –1;
FileInfo.lpszPathName = path;
FileInfo.lpszFileName = filename;
FileInfo.lpFileType = NULL;
message.lpFiles = & m_FileInfo;
}

3-3-4 发送电子邮件

使用MAPISendMail发送电子邮件,其声明如下:

ULONG FAR PASCAL MAPISendMail (LHANDLE lhSession,
ULONG ulUIParam, lpMapiMessage lpMessage,
FLAGS flFlags, ULONG ulReserved )

其中,flFlags的允许值为MAPI_DIALOG、MAPI_LOGON_UI和MAPI_NEW_SESSION,其意义与前几个函数中同名标识意义相同。

程序示例:

lResult = lpfnMAPISendMail(0, 0, &m_message, 0, 0);

3-3-5 释放内存

程序示例:
lpfnMAPIFreeBuffer(m_message.lpRecips);

四、小结

本文比较具体的介绍并演示了编写一个电子邮件程序的核心部分,如果读者要编写电子邮件程序,还需要进行的处理:

1. 加上错误处理代码。受篇幅限制,本文的程序示例中只有两处为错误处理留空,比较它们的异同。电子邮件程序是非常容易出错的,因此除这两处外要在主要函数调用完成后都加上错误处理,或使用try throw catch块处理例外。

2. 加上UI处理。

另外,本文所阐述的方法比较简单易行,事实上,有关电子邮件的程序远比这复杂得多,因此读者若需要编写一个功能强大的电子邮件程序,需要精通MAPI和SMTP/POP3等协议;如果读者要编写一个电子邮件服务器,那么不妨在精通MAPI和SMTP/POP3之后,阅读一些有关Exchange Server的资料。

上一页  4 5 6 7 8 9 

Tags:Visual 编写 电子邮件

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接