delphi编写电子邮件的制作步骤(the steps of making e-mail by delphi)_第1页
delphi编写电子邮件的制作步骤(the steps of making e-mail by delphi)_第2页
delphi编写电子邮件的制作步骤(the steps of making e-mail by delphi)_第3页
delphi编写电子邮件的制作步骤(the steps of making e-mail by delphi)_第4页
delphi编写电子邮件的制作步骤(the steps of making e-mail by delphi)_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

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

文档简介

DELPHI编写电子邮件的制作步骤(THESTEPSOFMAKINGEMAILBYDELPHI)THESTEPSOFMAKINGEMAILBYDELPHICATEGORYDELPHI200709200943667READCOMMENTS0COLLECTIONREPORTINTHEDELPHITNMPOPCONTROL,RECEIVINGEMAIL,POP3POP3PROTOCOLITSELFCOMMANDCOMMANDSPECIFICATIONUSERPASSESTHEUSERNAMETOTHEPOP3SERVERPASSTRANSFERTOTHEPOP3SERVERUSERPASSWORDSTATGETSTHEMAILNUMBEROFTHECURRENTUSERLISTGETSMAILLABELSANDSIZESALLINFORMATIONOFBETRGETTHEMESSAGE,INCLUDINGTHEMESSAGEHEADERSANDCONTENTTOPGETSMAILHEADERSDELEDELETESTHESPECIFIEDMESSAGENOOPEMPTYOPERATIONQUITEXITHOSTDIALOGUECONTROLPROPERTIES1,ATTACHFILEPATHTHESPECIFIEDATTACHMENTSTORAGEPATH,THECURRENTPATHISSTILL2,BYTESRECVDHOWMANYBYTESHAVEBEENRECEIVED3,BYTESTOTALTHETOTALNUMBEROFBYTESTRANSFERRED4,CONNECTEDTOESTABLISHACONNECTIONWITHTHEPOP3SERVERRETURNSTRUE,OTHERWISEFALSECASESIFNOTNMPOP31CONNECTTHENBEGINNMPOP31PORT110NMPOP31USERIDUSERNAMENMPOP31PASSWORDUSERPASSWORDNMPOP31CONNECTEND5,DELETEONREADIFTHEPROPERTYISTRUE,WHENTHEMAILAFTERDOWNLOADINGFROMTHESERVERTODELETE6,HOSTSERVERHOSTNAMEORIPADDRESS7,LOCALIPRETURNTOTHECLIENTIPADDRESS,IFTHEREISMORETHANONE,ITRETURNSONLYTHEFIRST8,MAILCOUNTRETURNMAILNUMBER9,MAILMESSAGECALLTHEGETMAILMESSAGEMETHOD,WHICHRETURNSTHEMAILTOTHEINFORMATIONRETRIEVAL,ITISAKINDOFITCONTAINSTHEFOLLOWINGPARTSLATTACHMENTSTHISISATSTRINGLISTOBJECTCONTAININGAMAILATTACHMENTNAMERECEIVEDLBODYTHISISATSTRINGLISTOBJECTCONTAININGTHEBODYOFTHEMESSAGERECEIVEDTHEE_MAILADDRESSOFTHESENDEROFLFROMLHEADTHISISATSTRINGLISTOBJECTTHATCONTAINSTHEHEADERTITLETHEIDENTIFICATIONNUMBEROFLMESSAGEIDMAILTHETHEMEOFLSUBJECTMAIL10,PASSWORD,PORT,USERIDSUBMITTEDTOTHEPOP3SERVERUSERPASSWORDPROTOCOLPORT,USERIDENTIFICATION11,REMOTEIPTHEIPADDRESSOFTHEPOP3SERVER12,REPORTLEVELINDICATESTHECALLINGSTATEINFORMATIONFROMTHEPOP3SERVER13,STATUSRETURNSTHECURRENTSTATUSINFORMATION14,SUMMARYISACLASSTHATCONTAINSSTATISTICALINFORMATIONOFMAILITCONTAINSTHEFOLLOWINGPARTSTHENUMBEROFBYTESINLBYTESMAILTHEEMAILADDRESSOFTHESENDEROFLFROMTHENUMBERINGOFLMESSAGEIDMAILLSUBJECT,THISISTHESUBJECTOFMAIL15,TIMEOUTTHENUMBEROFMILLISECONDS,WHENSOCKETHERESPECIFIEDNORESPONSETIME,WILLTRIGGERANEXCEPTION16,TRANSACTIONREPLYRETURNSTHELASTCOMMANDEXECUTIONRESULTCONTROLMETHOD1,ABORTTHESUSPENSIONISRECEIVED,ANDDISCONNECTTHEPOP3SERVER2,CONNECTTHECONNECTIONTOTHEPOP3SERVER,BUTSETINADVANCEOFHOST,PORT,USERID,PASSWORDPROPERTYCASESNMPOP31HOST“MAILWOFOOCOM“NMPOP31PORT110NMPOP31REPORTLEVEL1NMPOP31TIMEOUT1000NMPOP31CONNECT3,DELETEMESSAGEMAILNUMBERINTEGERFROMTHEPOP3SERVERTODELETEAMESSAGENUMBERMAILNUMBERMAILNOTEITSNOTREALLYDELETEDHERE,WHENINTHEOPENSIDEOFTHEGROUNDBEFORETHECALLTORESET,WILLBERESTORED4,DISCONNECTDISCONNECTFROMTHEPOP3SERVER5,GETMAILMESSAGEMAILNUMBERINTEGERFROMTHEPOP3SERVERTODOWNLOADAMAILMESSAGENUMBERMAILNUMBER6,GETSUMMARYMMAILNUMBERINTEGERGETAMESSAGE,THEMESSAGENUMBERISMAILNUMBER7,LISTRETRIEVEALISTFROMTHEMAILSERVERTHELISTCONTAINSTHENUMBERANDBYTESOFEACHMESSAGEEACHITEMINTHELISTTRIGGERSAONLISTEVENT8,RESETTHERECOVERYOFALLMARKERSINTHESERVERFORDELETEDITEMSCONTROLEVENTS1,ONAUTHENTICATIONFAILEDVARHANDLEDBOOLEANLOGINSERVER,USERNAMEANDPASSWORDCANNOTBEPASSED,WILLTRIGGERTHEEVENTCORRECT,IFTHEHANDLEDPARAMETERISSETTOTRUE,WILLTRYTOLOGINAGAIN2,ONAUTHENTICATIONNEEDEDVARHANDLEDBOOLEANIFANACTIONISREQUIREDTOVERIFYTHEIDENTITYOFTHEUSER,WILLTRIGGERTHEEVENTCASESPROCEDURETFORM1NMPOP31AUTHENTICATIONNEEDEDVARHANDLEDBOOLEANVARNEWPASS,NEWIDSTRINGBEGINNEWPASSNMPOP31PASSWORDNEWIDNMPOP31USERIDINPUTQUERY“AUTHENTICATIONNEED“,“INPUTUSERID“,NEWIDINPUTQUERY“AUTHENTICATIONNEED“,“INPUTPASSWORD“,NEWPASSNMPOP31USERIDNEWIDNMPOP31PASSWORDNEWPASSHANDLEDTRUEEND3,ONCONNECTWILLTRIGGERTHEEVENTDISPLAYWHENSUCCESSFULLYCONNECTEDWITHTHESERVER4,ONCONNECTFAILEDWILLTRIGGERTHEEVENTDISPLAYWHENTHEFAILUREOFACONNECTIONWITHTHESERVERWHEN5,ONCONNECTREQUIREDVARHANDLEDBOOLEANTHEPOPCONTROLMETHODISMOSTINTERESTINGINCONNECTIONWITHTHESERVERONLYIFTHECALLINGMETHODANDTHESERVERCONNECTIONISNOTSUCCESSFUL,WILLTRIGGERTHEEVENTTHISSHOULDBETOCALLTHECONNECTMETHOD,ANDTHEHANDLEDPARAMETERSETTOTRUE6,ONDISCONNECTWHENTHESERVERISDISCONNECTED,ITWILLTRIGGERTHEEVENTIFYOUWANTTOACCESSTHEVCLCONTROL,YOUDBETTERMAKESUREITDOESNTEXIST7,ONFAILUREIFTHEMESSAGEERRORDELETING,TRIGGERINGTHEEVENT8,ONINVALIDHOSTCONNECTEDWITHTHEHOSTTOFINDTHESPECIFIEDHOSTNAMEDOESNOTEXIST,TRIGGERINGTHEEVENT9,ONLISTWHENTHEPROGRAMCALLSTHELISTPROCESS,EACHRETRIEVEDAWILLTRIGGERTHEEVENTATATIMETHEMSGPARAMETERISTHEPOSTPARTNUMBER,THESIZEPARAMETERISTHENUMBEROFBYTESINTHEMESSAGE10,ONPACKETRECVDEACHRECEIVEDAPIECEOFDATA,WILLTRIGGERTHEEVENTATATIMETHEAVAILABLEBYTESTOTALANDBYTESRECVDATTRIBUTESDISPLAYMAILRECEIVINGSCHEDULE11,ONRESETTHEEVENTISTRIGGEREDWHENTHEPROGRAMCALLSTHERESETPROCEDURETORECOVERTHEDELETEDMARKEDMESSAGES12,ONRETRIEVESTARTHEEVENTISTRIGGEREDWHENTHEPROGRAMCALLSTHEGETMAILMESSAGEPROCEDUREORTHEGETSUMMARYPROCESSTORETRIEVETHEDATA13,ONRETRIEVEENDWHENTHEPROGRAMCALLSTHEGETMAILMESSAGEPROCEDUREORTHEGETSUMMARYPROCESSRETRIEVESTHEDATASUCCESSFULLY,ITTRIGGERSTHEEVENTEXAMPLE1PROCEDURESAREASFOLLOWSPROCEDURETFRMMAILFORMCREATESENDERTOBJECTBEGIN/SERVERINFORMATIONEDTIPTEXTMAILWOFOOCOMEDTPORTTEXT110/USERINFORMATIONEDTUSERTEXTMISEDTPASSPASSWORDCHAREDTPASSTEXT123/OTHEREDTMAIL文本;EDTSUBJECT文本;MEMO1LINESCLEAR;/POP3控件参数设置NMPOP31。DELETEONREADFALSE;NMPOP31超时5000;NMPOP31。DELETEONREADFALSE;NMPOP31。REPORTLEVELSTATUS_BASIC;/显示其它选项MEMO1。滚动条SSBOTH;结束;首先要登陆服务器,在BTNCONNECT的ONCLICK事件中实现。代码如下程序TFRMMAIL。BTNCONNECT点击(发件人TOBJECT);开始NMPOP31。主持人EDTIPTEXT;NMPOP31。端口STRTOINT(EDTPORT。文本);NMPOP31。用户名EDTUSERTEXT;NMPOP31。密码EDTPASSTEXT;NMPOP31CONNECT;结束;登陆成功处理程序TFRMMAIL。NMPOP31连接(发件人TOBJECT);开始被(“连接成功”);结束;登陆成功失败处理程序TFRMMAIL。NMPOP31连接(发件人TOBJECT);开始被(“连接失败”);结束;登陆成功就可获得邮件信息了。按获得邮件按钮进行处理。程序TFRMMAIL。BTNGETMAILCLICK(发件人TOBJECT);开始NMPOP31LIST;结束;用了列表方法,当检索到信息时将触发ONLIST事件。这个事件的参数含有邮件大小等信息控件中显示出来将这些信息添加到LISTVIEW。程序TFRMMAIL。NMPOP31LIST(味精,尺寸整数);VARLISTITEM1TLISTITEM;开始LISTITEM1LISTVIEW1ITEMSADD;LISTITEM1。字幕INTOSTR(MSG);LISTITEM1。子项。添加(INTOSTR(大小);结束;在实际使用过程中,有可能用户在没有登陆服务器之前就使去获取邮件信息了这时NMPOP3将触发ONCONNECTIONREQUIRED事件。这时可在这里要求重新连服务器。程序TFRMMAIL。NMPOP31CONNECTIONREQUIRED(VAR处理布尔);开始处理真;NMPOP31CONNECT;结束;用户可在LISTVIEW控件中选择要看的邮件。程序TFRMMAIL。LISTVIEW1CLICK(VAR处理布尔);VAR指标,我整数;开始如果LISTVIEW1。选择NIL那么出口/获取所选的标识指数STRTOINT(LISTVIEW1。选择。上字);/获取邮件NMPOP31GETMESSAGE(指数);/获取邮件信息EDTMAIL。正文NMPOP31MAILMESSAGEFROM;EDTSUBJECT。正文NMPOP31MAILMESSAGESUBJECT;MEMO1。线。分配(NMPOP31。MAILMESSAGE体);结束;其它信息显示程序TFRMMAIL。NMPOP31SUCCESS(发件人TOBJECT);开始STATUSBAR1SIMPLETEXT“操作成功”;结束;程序TFRMMAIL。NMPOP31FAILURE(发件人TOBJECT);开始STATUSBAR1SIMPLETEXT“操作失败”;结束;程序TFRMMAIL。NMPOP31CONNECTIONFAILED(发件人TOBJECT);开始被(“连接失败”);结束;程序TFRMMAIL。NMPOP31INVALIDHOAT(VAR处理布尔);开始被(“无效的主机”);处理真;结束;最后退出邮件服务器程序TFRMMAIL。BTNDISCONNECTONCLICKSENDERTOBJECTBEGINNMPOP31DISCONNECTENDTFRMMAILPROCEDURENMPOP31DISCONNECTSENDERTOBJECTBEGINSTATUSBAR1SIMPLETEXT断开连接END发送邮件NMSMTPSMTP协议自身命令命令说明HELO客户机用HELO命令向服务器标识身份初始化邮件传输MAIL在MAIL命令后RCPT,标识单个邮件接收人NOOP无操作,服务器响应OKDATARCPT之后通常,表示所有邮件接收人已标识,初始化数据传输HELP客户机可使用此命令查询服务器支持什幺命令会话结束QUITNMSMTP属性1CLEARPARAMS属性为真时,邮件发送完毕会把POSTMESSAGE属性的值清空2、ENCODETYPE指定邮件编码方式UUMIME编码UNCODEMIMEUUENCODING编码FINALHEADERDISSIPATIONSUN指定最后的消息头标4、HOSTSMTP服务器的主机名或IP地址5、LOCALIP返回客户机的IP地址,若有多个只返回一个6、PORT指定服务器的端口7、POSTMESSAGE是一个类,存储要发送的邮件信息具体如下L发件人名称FROMNAMELFROMADRESS发件人EMAIL地址L回复地址REPLAYTOADRESSLORGRANIZATION发件人所在地址L发件人所用的客户程序LOCALPROGRAMLTOADRESS是TSTRINGLIST对象,收件人的接收地址LTOCCTSTRINGLIST对象,抄送的EMAIL地址LTOBCCTSTRINGLIST对象,密送的EMAIL地址LTSTRINGLIST对象,指定的附件ATTACHMENTSLTSTRINGLIST对象BODY,邮件正文SUBJECT邮件主题LLDATE邮件发送日期,为空指当前日期9、REPLAYNUMBER只读属性,返回SMTP服务器响应应答信息10、STATUS当前状态信息11、TIMEOUT毫秒级别的单位,如果规定时间SOCKET没有响应,触发异常12、TRANSACTIONREPLY返回上一次命令的执行结果13、USERID指定的用户名控件方法1ABORT中止发送,断开与SMTP服务器的连接2、CLEARPARAMETERS清空POSTMESSAGEDISSIPATIONSUNCONNECT登陆SMTP服务器,注意要先设好HOST,PORT属性HOST非法触发ONVALIDHOST事件,连接失败触发ONCONNECTFALIED事件如果连接成功触发ONCONNECT事件4、DISCONNECT断开与服务器的连接触发ONDISCONNECT事件5EXPANDLISTMAILLISTSTRINGBOOLEAN该过程在SMTP服务器上检索一个邮件列表,如果有触发ONMAILLISTRETURN事件,可以取得这个邮件列表6SENDMAIL发送邮件,事先要设好HOST,PORT,EXAMPLE7VERIFYUSERNAMESTRINGBOOLEAN检验用户名是否合法,合法为TRUE事件1ONATTACHMENTNOTFOUND如果没找到POSTMESSAGE所指定的邮件,该事件触发,同时有传进附件名的参数2、ONAUTHENTICATIONFAILEDWHENSMTPREQUIRESAUSERNAMEANDPASSWORDTOSEND,ANDTHEUSERDOESNOTGIVETHEUSERNAMEANDPASSWORDORGIVENERRORS,THEEVENTTRIGGERED3,ONCONNECTTHESUCCESSOFACONNECTIONWITHTHESERVER,TRIGGERINGTHEEVENT4,ONCONNECTFAILEDFAILEDTOCONNECTTOTHESERVER,TRIGGERINGTHEEVENT5,ONDISCONNECTDISCONNECTFROMTHESERVERTOTRIGGERTHEEVENT6,ONENACODESTARTWHENTHEATTACHMENTSTARTSENCODING,THEEVENTISTRIGGERED7,ONENACODEENDWHENTHEATTACHMENTENCODINGATTHEENDOFTHEEVENTTRIGGERPARAMETERFILENAME,INITIALCODEDATTACHMENT8,ONFAILUREWHENTHEMAILISNOTSUCCESSFUL,TRIGGERINGTHEEVENT9,ONHEADERINCOMPLETEWHENSENDINGMAIL,WHENGIVENINTHEPOSTMESSAGEHEADERINFORMATIONISNOTCOMPLETE,TRIGGER10,ONHOSTRESOLVEDANDONIVALIDHOSTWHENTHESERVERHOSTNAMETOFINDTHETRIGGEREVENT,ORTRIGGERONIVALIDHOST11,ONMAILLISTRETURNWHENTHEPROGRAMCALLSEXPANDLIST,EACHTORETRIEVEAEMAILADDRESS,WILLTRIGGERTHEEVENTATATIME12,ONRECIPIENTNOTFOUNDPOSTMESSAGEIFTHESPECIFIEDRECIPI

温馨提示

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

评论

0/150

提交评论