毕业设计(论文)-电子邮件发送和接收程序设计.doc_第1页
毕业设计(论文)-电子邮件发送和接收程序设计.doc_第2页
毕业设计(论文)-电子邮件发送和接收程序设计.doc_第3页
毕业设计(论文)-电子邮件发送和接收程序设计.doc_第4页
毕业设计(论文)-电子邮件发送和接收程序设计.doc_第5页
已阅读5页,还剩37页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

盐城工学院本科生实习设计说明书(2007)目 录 1.概述22.电子邮件系统的总体设计32.1.系统模块结构32.2.系统用例图33.协议的研究与分析43.1.SMTP协议简介及通讯模型43.2.POP协议简介及工作原理 44.本系统使用组件的介绍55.本系统的实现75.1.对话框工程的创建75.2.各模块的具体设计86.程序测试167.结束语及心得19附录 21附录1 21附录2 30电子邮件发送和接收程序设计1. 概 述电子邮件(简称E-mai1)又称电子信箱、电子邮政是种用电子手段提供信息交换的通信方式。它是全球多种网络上使用最普遍的一项服务。这种非交互式的通信,加速了信息的交流及数据传送,它是个简易、快速的方法。通过连接全世界的Internet,实现各类信号的传送、接收、存贮等处理,将邮件送到世界的各个角落。到目前为止,可以说电子邮件是Internet资源使用最多的一种服务,E-mai1不只局限于信件的传递,还可用来传递文件、声音及图形、图像等不同类型的信息。电子邮件的处理有两大部分组成:电子邮件发送程序和电子邮件接收程序。电子邮件发送程序的发送方式有两种:第一种是本地计算机与用户所指定的发送邮件服务器连接,然后通过发送邮件服务器将邮件传送到接收邮件的服务器,邮件中包含有信件主题和内容等一系列信息;第二种是本地计算机直接与接收电子邮件的服务器相连接,并将邮件送入收信者的邮箱中,电子邮件接收程序则只需要处理本地计算机与存在电子邮件的服务器相连接,并通过帐号和口令从服务器中获取电子邮件,邮件中包含有信件主题、内容和发送时间等。系统使用VisualC+ 6.0作为开发工具,开发一个功能全面,应用广泛电子邮件应用程序。系统实现的功能主要有创建与更改帐号,发送与接收电子邮件及其附件,管理电子邮件等。本例发送程序采取了既可与发送邮件服务器连接又可以直接与接收邮件服务器连接的方式来实现电子邮件的发送。用户在“收件人邮箱”所对应的对话框中输入收件人的Email地址,并在“发件人邮箱”所对的对话框中输入发信人的Email地址,编辑信件的正文(本例还可以发送附件,只要填写真确的路径,就可以发送附件),然后单击“发送”按钮,便可完成电子邮件的发送。电子邮件发送成功,程序将弹出一个“发送成功”的消息对话框;若电子邮件发送失败,程序将给出失败的相关信息。另外这里还有个“关于”按钮,单击一下可以查看相关帮助信息,有利于你使用此软件。本例电子邮件接收程序也采取了Visual C+语言与JMail组件相结合的方法,实现从电子邮件服务器上接收邮件。用户在“邮件服务器POP3”所对应的编辑框中输入收件人的E-mail所在的POP3服务器,在“帐号”所对应的编辑中输入邮箱的帐号,在“口令”所对应的编辑框中输入打开邮箱的密码,单击“收取”按钮,便可完成电子邮件的收取。若用户的信箱中存在着邮件,程序将把所有邮件罗列出来,单击任何一封邮件的标题,均可查看邮件的正文;若连接邮件失败,程序将给出失败的相关信息。同样有一个“关于”按钮,单击一下可以查看相关帮助信息。2.电子邮件系统的总体设计2.1系统模块结构电子子邮件客户端主要由以下两个模块构成:发送邮件模块、收取邮件模块、。其功能模块如图2.1所示:电子邮件客户应用系统发送邮件接收邮件 图2.1 电子有功能模块图1)发送邮件模块:发送邮件,发送附件,查看相关帮助信息2)接收邮件模块:接收邮件,查看相关帮助信息 2.2系统用例图用例是一个简单的声明,体现为文字或图表形式,描述系统的一个特定的目的或结果,以及是谁希望得到结果. 用例图可以说成是对于一个软件在规划阶段产生的技术性需求和功能性需求,利用某种建模工具来实现出来的一个图形化的介绍。通过对发送与接收电子邮件功能模块的分析,建立发送与接收电子邮件用例图如图2.2所示:. 图 2. 2 发送与收取电子邮件3.协议的研究与分析3.1 SMTP协议简介及通讯模型3.1.1 SMTP协议简介SMTP协议是TCP/IP协议族中的一员,主要对如何将电子邮件从发送方地址传送到接收方地址,也即是对传输的规则做了规定。SMTP协议的目标是可靠高效地传送邮件,它独立于传送子系统而且仅要求一条可以保证传送数据单元顺序的通道。SMTP协议通信模型并不复杂,主要工作集中在发送SMTP和接收SMTP上:首先针对用户发出的邮件请求,由发送SMTP建立一条连接到接收SMTP的双工通讯链路,这里的接收SMTP是相对于发送SMTP而言的,实际上它既可以是最终的接收者也可以是中间传送者。发送SMTP负责向接收SMTP发送SMTP命令,而接收SMTP则负责接收并反馈应答。可大致用下面的图3.1来表示:图3.1 SMTP通信模型3.2 POP3协议简介及工作原理3.2.1 POP3协议简介邮局协议 3 (POP3) 是检索电子邮件的标准协议。POP3 协议控制 POP3 电子邮件客户端和存储电子邮件的服务器之间的连接。POP3 服务使用 POP3 协议将电子邮件从邮件服务器检索到 POP3 电子邮件客户端。POP3 协议针对电子邮件服务器与电子邮件客户端之间的连接时具有三种处理状态:身分验证状态、事务处理状态和更新状态。在身份验证状态下,连接到服务器的 POP3 电子邮件客户端必须先接受身份验证,然后用户才能检索电子邮件。如果电子邮件客户端提供的用户名和密码与服务器上的匹配,则用户通过身份验证,然后进入事务处理状态。如果不匹配,用户会收到错误消息,不允许连接和检索电子邮件。为防止对邮件存储区的破坏,客户端通过身份验证后,POP3 服务会锁定用户的邮箱。用户通过身份验证后,由于邮箱已被锁定,除非该连接被终止,否则不能下载提交到邮箱的新电子邮件。同样,每次只允许一个客户端连接到邮箱,其他连接邮箱的请求都会被拒绝。 在事务处理状态下,客户端发送 POP3 命令,同时服务器会根据 POP3 协议接收命令并做出响应。如果服务器接收的任一客户端请求不符合 POP3 协议,就会被忽略,并返回错误消息。更新状态关闭客户端与服务器端之间的连接。这是客户端发送的最后命令。连接关闭后,邮件存储区会更新,以反映用户连接到邮件服务器后的变化情况。例如,除非用户的电子邮件客户端配置成执行其他操作,否则在用户成功检索电子邮件后,已检索的电子邮件将被标记成删除,然后从邮件存储区中删除。3.2.2 POP工作原理POP3(Post Office Protocol 3) 是适用于C/S结构的脱机模型的电子邮件协议, 目前已发展到第三版。POP3规定了怎样将个人计算机连接到Internet的邮件服务器并下载电子邮件的规则。POP3是因特网电子邮件的第一个离线协议标准, 允许用户从服务器上把邮件存储到本地主机(即自己的计算机)上,同时删除保存在邮件服务器上的邮件,而POP3服务器则是遵循POP3协议的接收邮件服务器, 用来接收电子邮件。 POP适用于C/S结构的脱机模型。脱机模型即不能在线操作,不像IMAP4(netscape支持IMAP4)当客户机与服务器连接并查询新电子邮件时,被该客户机指定的所有 将被下载的邮件都将被程序下载到客户机,下载后,电子邮件客户机就可以删除或 修改任意邮件,而无需与电子邮件服务器进一步交互。POP3客户向POP3服务器发送命令并等待响应,POP3命令采用命令行形式,用ASCII码表示。 服务器响应是由一个单独的命令行组成,或多个命令行组成,响应第一行以ASCII 文本+OK或-ERR指出相应的操作状态是成功还是失败在POP3协议中有三种状态,认可状态,处理状态,和更新状态。 当客户机与服务器建立联系时,一旦客户机提供了自己身份并成功确认,即由认可 状态转入处理状态,在完成相应的操作后客户机发出quit命令,则进入更新状态,更新之后最后重返认可状态。如下图3.2所示: 等待连接 身份确认 quit命令 |认可| |处理|更新|_|重返认可状态图 3.2 POP3工作流程图4.本系统使用组件的介绍一般情况下,在Visual C+中,电子邮件程序的编写是利用Windows自带的MAPI以及相关的通信协议SMTP/POP3 等来实现的。但是要利用MAPI和通信协议实现一个功能强大的电子邮件管理程序,需要有很强的相关专业知识。随着现代软件业的发展,软件厂商提供了方便、简易、与服务器无关且稳固的电子邮件处理组件,使我们可以在程序开发语言中调用这些组件,利用很简单的语言实现功能强大的程序。JMail组件便是一个很好的电子邮件程序开发第三方组件。JMail组件中包含有许多实现电子邮件处理的属性和方法。只需要在Visual C+代码中创建一个JMail组件对象,调用其中的某些功能,就能很快完成程序的开发。JMail常用的基本属性和方法如表4.1所示。JMail常用发送与接收信件的基本属性和方法方法和属性功能Body邮件内容Charset字符集,默认为“US-ASCII”Sendname发送人姓名Sender发送人邮箱地址ServeraddressSMTP服务器地址,可指定多个,用分号分开,并可指定端口;为空白时,JMail会尝试解决远程邮件服务器,然后直接发送过去即可Subject标题Priority优先级(1:高优先级3:普通有限级别5:低优先级 )AddAttachment(“filename”,ContentType)添加文件附件AddCustomAttachment(“filemane”,data)添加自定义附件AddURLAttachment(“bstrURL”,”bstrAttachAS”,bstrAuth)下载并添加一个来自bstrURL的附件,BstrAttachAS指定收到信件的文件名AddRecipient(“Email-Address”)增加一个收件人AddRecipientEX(“Email-Address”,“name”)增加一个带名字的收件人AppendBodyFromFile(“Filename”)将一个追加到正文后AppendText(Text”)追加信的正文内容Execute()方法执行发送Close()发送强制JMail关闭缓冲与邮件服务器的连接Date信件发送日期MailServer邮箱所在的服务器Subject标题Timeout连接服务器的超时限制Connect()方法连接服务器,需要参数:帐号、口令、服务器地址、端口5.本系统的实现5.1 对话框工程的创建本次设计中,主要用到对话框资源。对话框(Dialog)是实现应用程序人机交互的重要组成部分。对话框实际上也是一个窗口,它不但可以实现数据流的输入和输出,而且也可以移动和关闭对话框,甚至还可以进行图形的绘制和操作。要在应用程序中操作对话框资源,首先需要创建它。在Visual C+ 6.0集成开发环境中,对话框资源的创建和使用流程如图5.1所示。a.创建工程MailServer.首先,依据建立MFC应用程序的方法,利用MFC AppWizard(exe)建立一个名为MailServer的工程。设置应用程序类型为 Dialog Based模式。b.创建对话框资源单击Resource View面板,选择Dialog选项,添加一个新的对话框,命名为IDD_MAILSERVER_DIALOG,该对话框隶属于类CMailServerDlg.修改对话框的Caption属性为MailServer.向新对话框中添加新的控件,各控件属性如表5.1所示。表5.1 对话框IDD_MAILSERVER_DIALOG的控件资源标识类型相关属性及功能说明IDC_EDIT_MAILSERVER默认邮件服务器IDC_EDIT_RECIPIENTS默认收件人邮箱IDC_EDIT_SENDER默认发件人邮箱IDC_EDIT_SUBJECT默认主题IDC_EDIT_BODYMultiline正文IDCANCEL默认退出发送邮件程序IDOK默认发送邮件c. 创建工程MailRecieve首先,依据建立MFC应用程序的方法,利用MFC AppWizard(exe)建立一个名为MailRecieve的工程。设置应用程序类型为 Dialog Based模式。d.创建对话框资源单击Resource View面板,选择Dialog选项,添加一个新的对话框,命名为IDD_MAILRECIEVE_DIALOG,该对话框隶属于类CMailRecieveDlg.修改对话框的Caption属性为MailRecieve.向新对话框中添加新的控件,各控件属性如表5.2所示。表5.2 对话框IDD_MAILRECIEVE_DIALOG的控件资源标识类型相关属性及功能说明IDC_EDIT_MAILSERVER默认邮件POP3服务器IDC_EDIT_MUSERID默认邮箱帐号IDC_EDIT_PPASSWORD单击Password复选框邮箱口令IDC_EDIT_MESSAGESReport邮件列表IDC_EDIT_BODYMultiline正文IDCANCEL默认退出收取邮件程序IDOK默认收取邮件调用DoModal()显示对话框创建对话框类派生类的对象创建与对话框中控件相关联的变量创建对话框中的控件的消息响应创建与对话框资源相关联的对话框类的派生类创建对话框资源图5.1 对话框资源的创建与使用流程5.2 各模块的具体设计5.2.1 发送邮件模块详细设计与实现(1)往头文件StdAfx.h中添加JMail对象的声明,这样才能在整个程序中引用JMail对象。代码如下:(注意:使用JMail4.3版本)# import “jmail.dll” /显示指定JMail动态链接库using namespace jmail; /定义程序中JMail对象的名称(2)头文件MailServer.h ,利用ClassWizard类向导添加退出应用程序的函数ExitInstance()。源代码如下:/Overrides /AFX_VIRTUAL(MailServerApp) Public: /应用程序的初始化 virtual BOOL InitInstance(); /退出应用程序 virtual int ExitInstance(); /AFX_VIRTUAL (3)源文件MailServer.cpp,类CMailServerApp的实现文件1)由于程序中引用了JMail组件,因此必须在InitInstance()函数中添加如下代码,进行应用程序的初始化。/添加初始化函数BOOL CMailServerApp:InitInstance() AfxEnableControlContainer(); :CoInitialize(NULL);# ifdef _AFXDLL Enable3dControls();# else Enable3dControlsStatic();2)应用程序时,在ExitInstance()函数中添加释放各变量的代码。/应用程序退出int CMailServerApp:ExitInstance()return CWinApp:ExitInstance();:CoUninitialize ();(4)MailServerDlg.h头文件,CMailServerDlg类的接口。1)在头文件MaiServer.Dlg中,添加对话框IDD_MAILSERVER_DIALOG内各控件所对应的控件变量。右击工作区中任一源文件,在弹出的菜单中选择ClassWizard选项,选择ClassWizard 对话框内的Member Variables 页面,为CMailServerDlg 类添加控件变量。各控件及其对应的变量如表5.3所示。表5.3 对话框IDD_MAILSERVER_DIALOG的控件及控件变量控件控件变量IDC_EDIT_MAILSERVERm_strmailserverIDC_EDIT_RECIPIENTSm_strrecipientsIDC_EDIT_SENDERm_strsenderIDC_EDIT_SUBJECTm_strsubjectIDC_EDIT_BODYm_strbody2)利用CLassWizard添加IDOK控件的ON_BN_CLICKED事件函数,代码如下:Protected:/ AFX_MSG(CMailServerDlg)Afx_msg void Onsend();/AFX_MSG;3)源文件MailServerDlg.cpp,类CMailServerDlg的实现文件。打开MailServerDlg.cpp文件,添加发送邮件函数OnSend()代码如下:/发送邮件程序void CMailServerDlg:OnSend() UpdateData();/获取Edit控件中的字符串/判断Edit控件中的字符串是否有效 /发送邮件过程try/创建一个JMail对象,这样便可以利用其内容封装的基本属性和方法jmail:IMessagePtr pMessage(JMail.Message);/发件人邮箱pMessage-From=(LPCTSTR) m_strsender;/发件人姓名pMessage-FromName=我的名字;/添加收件人pMessage-AddRecipient(LPCTSTR) m_strrecipients, , );/优先级设置,15逐次降低,3为中级pMessage-Priority=3;/编码方式设置,默认是iso-8859-1pMessage-Charset = GB2312;/主题pMessage-Subject = (LPCTSTR) m_strsubject;/正文pMessage-Body = (LPCTSTR) m_strbody; /附件 4)附件发送的实现;1. 首先在CMailServerDld类中定义几个对象。 public: CString str; CString tr; BOOL strbool; _bstr_t bstr;2. 加载文件:void CMailServerDlg:OnBtAddfile() / TODO: Add your control notification handler code hereCFileDialog cg(TRUE); if(cg.DoModal()=IDOK) strbool=true; else strbool=false;cg.DoModal(); str=cg.GetPathName();MessageBox(str);3. 发送附件: bstr=str.AllocSysString(); /CString类型转换成_bstr_t 类型 if(strbool=true) /判断有没有打开附件 _bstr_t bstrCID = pMessage-AddAttachment( bstr, VARIANT_TRUE, ); /开始发送(带附件) pMessage-Send(LPCTSTR) m_strmailserver,VARIANT_FALSE); pMessage.Release(); AfxMessageBox(发送成功(带附件)!); else /开始发送(不带附件) pMessage-Send(LPCTSTR) m_strmailserver,VARIANT_FALSE); pMessage.Release(); AfxMessageBox(发送成功(不带附件)!);5.2.1 接收邮件模块详细设计与实现:(1)向头文件StdAfx.h中添加JMail对象的声明,这样才能在整个程序中引用JMail对象,代码如下: # import “.jmail.dll” /显示指定JMail动态链接库 using namespace jmail;(2)头文件MailServer.h ,利用 ClassWizad 类向导添加退出应用程序的函数ExitInstance(),源代码如下:/ Overrides /AFX_VTRTUAL(CMailRecieveApp) public: /应用程序的初始化 virtual BOOL InitInstance (); /退出应用程序 virtual int ExitInstance (); / AFX_VIRTUAL(3)源文件MailRecieve.cpp,类CMailRecieve.App的实现文件。1)由于程序中引用了JMail组件,因此必须在InitInstance ()函数中添加如下代码,进行应用程序的初始化。/添加初始化函数BOOL CMailRecieveApp:InitInstance ()AfxEnableControlContainer ();:CoInitialize(NULL);# ifdef _AFXDLLEnable3dControls();#else Enable3dControlsStatic(); 2)应用程序时,在ExitInstance () 函数中添加释放各变量的代码:/应用程序退出int CMailRecieveApp:ExitInstance() return CWinApp:ExitInstance(); :CoUninitialize();(4)MailRecieveDlg.h头文件,CMailRecieve类的接口。1) 在头文件MailRecieveDlg.h中,添加对话框IDD_MAILRECIEVE_DIALOG内各控件所对应的控件变量。右击工作区中任一源文件,在弹出的菜单中选择ClassWizard 选项,选择ClassWizard 对话框内的Member Variables 页面,为CMailRecieveDlg 类添加控件变量。各控件及其对应的变量如表5.4所示。表5.4 对话框IDD_MAILRECIEVE_DIALOG的控件及控件变量控件控件变量IDC_EDIT_MAILSERVERm_strmailserverIDC_EDIT_PASSWORDm_strPasswordIDC_EDIT_USERIDm_struseridIDC_EDIT_MESSAGESm_strsubjectIDC_EDIT_BODYm_ctlMessageList2)利用ClassWizard添加IDOK控件的ON_BN_CLICKED事件函数,利用ClassWizard添加List 控件的LVN_ITEMCHANGE 事件函数。代码如下: protected:/AFX_MSG(CMailServerDlg)/接收邮件的函数Afx_msg void OnRecieve();/显示邮件正文的函数afx_msg void OnShowBody(NMHDR* pNMHDR, LRESULT* pResult);/AFX_MSG3)添加存放信件正文内容的动态数组m_strBodyArray:protected: CStringArray m_strBodyArray;4)源文件MailRecieveDlg.cpp, 类CMailRecieveDlg的实现文件。向MailServerDlg.cpp文件中添加初始化对话框函数OnInitDialog()的代码。BOOL CMailRecieveDlg:OnInitDialog()/ TODO: Add extra initialization here/升级列表控件:SendMessage(m_ctlMessagesList.m_hWnd, LVM_SETEXTENDEDLISTVIEWSTYLE, LVS_EX_FULLROWSELECT, LVS_EX_FULLROWSELECT);/显示控件列表m_ctlMessagesList.InsertColumn(0,发件人,LVCFMT_LEFT,120); m_ctlMessagesList.InsertColumn(1,主题,LVCFMT_LEFT,350); m_ctlMessagesList.InsertColumn(2,日期,LVCFMT_LEFT,100);return TRUE; / return TRUE unless you set the focus to a control5)接受邮件的实现void CMailRecieveDlg:OnRecieve() / TODO: Add your control notification handler code here/接受邮件的函数UpdateData();/格式化Edit控件中的字符串 /判断帐号口令是否存在/清空List控件列表m_ctlMessagesList.DeleteAllItems();/清空存在邮件正文的数组m_strBodyArray.RemoveAll();/接受邮件try/创建新的JMail对象jmail:IPOP3Ptr pPOP3(JMail.POP3);jmail:IMessagesPtr pMessages;/ 设置链接服务器超时限制30spPOP3-Timeout = 30;/ 链接邮件服务器,110为POP3默认端口号pPOP3-Connect(LPCTSTR)m_strUserid,(LPCTSTR)m_strPassword, (LPCTSTR)m_strmailserver, 110); /获取信件pMessages = pPOP3-Messages; / 断开连接pPOP3-Disconnect();6)显示邮件正文函数OnShowBody()的代码。/显示邮件正文内容void CMailRecieveDlg:OnShowBody(NMHDR* pNMHDR, LRESULT* pResult) NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR; / TODO: Add your control notification handler code here /获取选定信件的指针 POSITION pos =m_ctlMessagesList.GetFirstSelectedItemPosition(); 6.程序测试6.1 发送电子邮件程序主界面(不带附件),如图6.1所示:图6.1发送电子邮件程序主界面(不带附件)6.2 发送电子邮件程序主界面(加载附件),如图6.2所示:图6.2发送电子邮件程序主界面(加载附件)6.3 发送电子邮件程序主界面(带附件),如图6.3所示:图6.3发送电子邮件程序主界面(带附件)6.4 版权及相关帮助信息(发送收邮件),如图6.4所示: 图6.4版权及相关帮助信息(发送收邮件)6.5 接收电子邮件程序主界面(成功),如图6.5所示:图6.5接收电子邮件程序主界面(成功)6.6 版权及相关帮助信息(接收邮件),如图6.6所示:图6.6版权及相关帮助信息(接收邮件)7.结束语及心得:经过两个星期的不懈努力,终于设计出一个电子邮件发送和接收系统并调试通过,最后整理出设计报告。通过编写电子邮件的发送和接收程序,发现利用外部组件JMail4.3和Visual C+联合能很轻松得开发出功能强大却十分简洁的软件,且不需要太多的专业知识。目前系统还不够完整,还存在着很多的不足和不完善的地方。归纳起来体现在以下几个方面:1系统功能趋于简单,真正的邮件客户端系统包括很多方面的信息,而不仅仅局限于发送邮件和收取邮件。真正的邮件客户端系统还包括邮件导入、邮件导出、文本编辑(查找与撤消)、通讯簿、通讯规则等等功能。2系统图形操作功能缺乏,目前系统中对邮件附件的添加,删除功能都没有图形快捷操作,而且整个系统的界面显得过于单调,缺乏动态显示效果。如果能结合其它界面美化工具,使得界面更人性化,那就更好了。3对与编写的 发送邮件的类MailServer与接收邮件类MailRecieve。实现的功能还不够完善。在接收邮件时,不能接收附件。 附录附录1:发送邮件的部分程序/ MailServerDlg.cpp : implementation file#include stdafx.h#include MailServer.h#include MailServerDlg.h#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE = _FILE_;#endif/ CAboutDlg dialog used for App Aboutclass CAboutDlg : public CDialogpublic:CAboutDlg();/ Dialog Data/AFX_DATA(CAboutDlg)enum IDD = IDD_ABOUTBOX ;CStringm_strEditHelp;/AFX_DATA/ ClassWizard generated virtual function overrides/AFX_VIRTUAL(CAboutDlg)protected:virtual void DoDataExchange(CDataExchange* pDX); / DDX/DDV support/AFX_VIRTUAL/ Implementationprotected:/AFX_MSG(CAboutDlg)virtual BOOL OnInitDialog();/AFX_MSGDECLARE_MESSAGE_MAP();CAboutDlg:CAboutDlg() : CDialog(CAboutDlg:IDD)/AFX_DATA_INIT(CAboutDlg)m_strEditHelp = _T();/AFX_DATA_INITvoid CAboutDlg:DoDataExchange(CDataExchange* pDX)CDialog:DoDataExchange(pDX);/AFX_DATA_MAP(CAboutDlg)DDX_Text(pDX, IDC_EDIT_HELP, m_strEditHelp);/AFX_DATA_MAPBOOL CAboutDlg:OnInitDialog() CDialog:OnInitDialog();/ TODO: Add extra initialization herem_strEditHelp= 相关帮助信息: CRLFCRLF 一、 发送邮件服务器和发信人信箱有密切关系,假如你的信箱为,则发送邮件服务器一般为:,当然这也不是绝对的,你可以到你的邮件相关网站查询。不知道服务器名的话也可以不填! CRLFCRLF 二、 发信信箱格式比较灵活,如下两种格式均为合法的:1 在你的E-Mail首尾加小于大于符号: 2 直接填写你的E-Mail: CRLFCRLF 三、 接受信箱可以为多个,中间用分号;隔开,例如:Pookie;snuggles; 某些信箱前面的部分字符串是收信人名称,例如上面的Pookie可以省略不写,例如下面一行和上面一行是等价的,它们都是可以接受的信箱输入格式。; CRLFCRLF 四、 邮件主题,当然就是邮件的标题了,你可以随意输入自己喜爱的标题。CRLF CRLF 五、 邮件正文就是你要发给对方的信息。 CRLFCRLF 六、 最后不得不提一下,由于当今好多发送邮件服务器都要求身份验证,也就是需要提供的你的信箱密码,鉴于技术问题,这类信箱本程序暂时不支持。 CRLFCRLF 周清 周庆 蒯志刚 于雯CRLF 2007年7月 CRLF ; UpdateData(FALSE); / Update the Dialogreturn TRUE; / return TRUE unless you set the focus to a control / EXCEPTION: OCX Property Pages should return FALSEBEGIN_MESSAGE_MAP(CAboutDlg, CDialog)/AFX_MSG_MAP(CAboutDlg)/AFX_MSG_MAPEND_MESSAGE_MAP()/ CMailServerDlg dialogCMailServerDlg:CMailServerDlg(CWnd* pParent /*=NULL*/): CDialog(CMailServerDlg:IDD, pParent)/AFX_DATA_INIT(CMailServerDlg)m_strbody = _T();m_strmailserver = _T();m_strrecipients = _T();m_strsender = _T();m_strsubject = _T();/AFX_DATA_INIT/ Note that LoadIcon does not require a subsequent DestroyIcon in Win32m_hIcon = AfxGetApp()-LoadIcon(IDR_MAINFRAME);void CMailServerDlg:DoDataExchange(CDataExchange* pDX)CDialog:DoDataExchange(pDX);/AFX_DATA_MAP(CMailServerDlg)DDX_Text(pDX, IDC_EDIT_BODY, m_strbody);DDX_Text(pDX, IDC_EDIT_MAILSERVER, m_strmailserver);DDX_Text(pDX, IDC_EDIT_RECIPIENTS, m_strrecipients);DDX_Text(pDX, IDC_EDIT_SENDER, m_strsender);DDX_Text(pDX, IDC_EDIT_SUBJECT, m_strsubject);/AFX_DATA_MAPBEGIN_MESSAGE_MAP(CMailServerDlg, CDialog)/AFX_MSG_MAP(CMailServerDlg)ON_WM_SYSCOMMAND()ON_WM_PAINT()ON_WM_QUERYDRAGICON()ON_BN_CLICKED(IDOK, OnSend)ON_BN_CLICKED(IDC_ABOUT, OnAbout)ON_BN_CLICKED(IDC_BT_ADDFILE, OnBtAddfile)/AFX_MSG_MAPEND_MESSAGE_MAP()/ CMailServerDlg message handlersBOOL CMailServerDlg:OnInitDialog()CDialog:OnInitDialog();/ Add About. menu item to system menu./ IDM_ABOUTBOX must be in the system command range.ASSERT(IDM_ABOUTBOX & 0xFFF0) = IDM_ABOUTBOX);ASSERT(IDM_ABOUTBOX AppendMenu(MF_SEPARATOR);pSysMenu-App

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论