delphi编写电子邮件的制作步骤文档格式.docx

上传人:b****2 文档编号:1173967 上传时间:2023-04-30 格式:DOCX 页数:17 大小:20.10KB
下载 相关 举报
delphi编写电子邮件的制作步骤文档格式.docx_第1页
第1页 / 共17页
delphi编写电子邮件的制作步骤文档格式.docx_第2页
第2页 / 共17页
delphi编写电子邮件的制作步骤文档格式.docx_第3页
第3页 / 共17页
delphi编写电子邮件的制作步骤文档格式.docx_第4页
第4页 / 共17页
delphi编写电子邮件的制作步骤文档格式.docx_第5页
第5页 / 共17页
delphi编写电子邮件的制作步骤文档格式.docx_第6页
第6页 / 共17页
delphi编写电子邮件的制作步骤文档格式.docx_第7页
第7页 / 共17页
delphi编写电子邮件的制作步骤文档格式.docx_第8页
第8页 / 共17页
delphi编写电子邮件的制作步骤文档格式.docx_第9页
第9页 / 共17页
delphi编写电子邮件的制作步骤文档格式.docx_第10页
第10页 / 共17页
delphi编写电子邮件的制作步骤文档格式.docx_第11页
第11页 / 共17页
delphi编写电子邮件的制作步骤文档格式.docx_第12页
第12页 / 共17页
delphi编写电子邮件的制作步骤文档格式.docx_第13页
第13页 / 共17页
delphi编写电子邮件的制作步骤文档格式.docx_第14页
第14页 / 共17页
delphi编写电子邮件的制作步骤文档格式.docx_第15页
第15页 / 共17页
delphi编写电子邮件的制作步骤文档格式.docx_第16页
第16页 / 共17页
delphi编写电子邮件的制作步骤文档格式.docx_第17页
第17页 / 共17页
亲,该文档总共17页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

delphi编写电子邮件的制作步骤文档格式.docx

《delphi编写电子邮件的制作步骤文档格式.docx》由会员分享,可在线阅读,更多相关《delphi编写电子邮件的制作步骤文档格式.docx(17页珍藏版)》请在冰点文库上搜索。

delphi编写电子邮件的制作步骤文档格式.docx

服务器主机名或ip地址

7、LocalIp

返回客户的IP地址,如果有多个,则只返回第一个。

8、mailcount

返回邮件数

9、mailmessage

调用了getmailmessage方法后,该属性返回检索到的邮件信息,它是一个类

包含了以下几部份:

lAttachments:

这是个tstringlist对象:

包含了接收到邮件的附件名称

lBody:

这是个tstringlist对象:

包含了接收到邮件的正文

lFrom:

发件人的e_mail地址

lHead:

这是个tstringlist对象,包含了邮件头的标题

lMessageID:

邮件的识别号

lSubject:

邮件的主题

10、password,port,userid

向pop3服务器提交的用户密码,协议端口,用户识别名

11、RemoteIP

pop3服务器的IP地址

12、ReportLevel

指示了与pop3服务器的通话状态信息?

13、Status

返回当前状态信息

14、Summary

是一个类,包含邮件的统计信息。

其中包含了以下几部份:

lBytes邮件的字节数;

lFrom发件人的邮件地址

lMessageID邮件的编号

lSubject这是邮件的主题

15、TimeOut

单位毫秒数,当Socket在这里所指定时间内没有响应,将会触发异常。

16、TransactionReply

返回上次命令执行结果。

******************************************************************

控件方法:

1、Abort

中止此次接收,且断开与Pop3服务器的连接。

2、Connect

与Pop3服务器的连接,但事先设好host,port,userid,password属性。

例:

Nmpop31.host:

=””;

Nmpop31.port:

Nmpop31.reportlevel:

=1;

Nmpop31.timeout:

=1000;

Nmpop31.connect;

3、DeleteMessage(MailNumber:

integer)

从Pop3服务器删除一个邮件号为Mai

lNumber的邮件。

注:

这里并没有真正删除,当在断开边接之前调用reset,将被恢复。

4、Disconnect

断开与Pop3服务器的连接。

5、GetMailMessage(MailNumber:

从Pop3服务器下载一个邮件号为MailNumber的邮件

6、GetSummary(MMailNumber:

得到一个邮件信息,其邮件号为MailNumber。

7、List

从邮件服务器检索一个列表。

该列表包含每一封邮件的编号和字节数,列表中的每一项将触发一个Onlist事件。

8、Reset

将恢复服务器中所有标记为已删除的邮件。

**************************************************************

控件事件:

1、OnAuthenticationFailed(Varhandled:

Boolean)

登陆服务器时,用户名与密码不能通过,将触发该事件。

更正了后,如果将Handled参数设为True,将再登陆一次。

2、OnAuthenticationNeeded(Varhandled:

如果某个操作需要验证用户的身份,将触发这个事件。

procedureTform1.NMPOP31AuthenticationNeeded(Varhandled:

Boolean);

varnewpass,newid:

string;

newpass:

=NMPOP31.password;

newid:

=NMPOP31.userid;

inputquery(‘AuthenticationNeed‘,’inputuserid’,newid);

inputquery(‘AuthenticationNeed‘,’inputpassword’,newpass);

NMPOP31.userid;

:

=newid;

NMPOP31.password:

=newpass;

Handled:

=true;

3、OnConnect

当与服务器连接成功时将显示触发该事件。

4、OnConnectFailed

当与服务器连接失败时将显示触发该事件

5、OnConnectRequired(Varhandled:

Pop控件大多数方法是在与服务器连接成功后才会有意思。

如果调用方法时与服务器连接不成功时,将触发该事件。

此时应重新调用connect方法,且将Handled参数设为True;

6、OnDisconnect

当与服务器断开连接时将触发该事件,如果要访问VCL控件,最好先判断它存不存在。

7、OnFailure

如果删除该邮件出错时,触发该事件。

8、OnInvalidHost

与主机连接时发现指定主机名不存在,触发该事件。

9、OnList

当程序调用list过程时,每检索到一项将会触发该事件一次。

MSG参数是邮

件编号,Size参数是邮件字节数。

10、OnPacketRecvd

每收到一个数据块时,将触发一次该事件。

可用BytesTotal和BytesRecvd属性显示邮件接收进度。

11、OnReset

当程序调用Reset过程恢复已经有删除标记的邮件时,触发该事件。

12、OnRetrieveStar

当程序调用GetMailMessage过程或GetSummary过程开始检索数据时将会触发该事件。

13、OnRetrieveEnd

当程序调用GetMailMessage过程或GetSummary过程检索数据成功时将会触发该事件

实例1:

程序如下:

procedureTfrmMail.FormCreate(Sender:

Tobject);

//服务器信息

edtIP.text:

=’’

edt

Port.text:

=’110’;

//用户信息

edtUser.text:

=’mis’;

edtpass.passwordchar:

=’*’;

edtpass.text:

=’123’;

//其它

edtmail.text:

=’’;

edtsubject.text:

memo1.lines.clear;

//pop3控件参数设置

NMPOP31.deleteonread:

=false;

NMPOP31.timeout:

=5000;

NMPOP31.Reportlevel:

=Status_Basic;

//显示其它选项

memo1.scrollbars:

=ssboth;

首先要登陆服务器,在btnConnect的onclick事件中实现。

代码如下:

procedureTfrmMail.btnConnectclick(Sender:

NMPOP31.host:

=edtip.text;

NMPOP31.port:

=strtoint(edtport.text);

NMPOP31.userid:

=edtuser.text;

=edtpass.text;

NMPOP31.connect;

登陆成功处理:

procedureTfrmMail.NMPOP31Connect(Sender:

showmessage(‘连接成功’);

登陆成功失败处理:

showmessage(‘连接失败’);

登陆成功就可获得邮件信息了。

按获得邮件按钮进行处理。

procedureTfrmMail.btnGetMailclick(Sender:

NMPOP31.list;

用了list方法,当检索到信息时将触发OnList事件。

这个事件的参数含有邮件大小等信息。

将这些信息添加到listView控件中显示出来。

procedureTfrmMail.NMPOP31list(MSG,size:

integer);

var

listitem1:

tlistitem;

=listview1.items.add;

listitem1.caption:

=intostr(msg);

listitem1.subitems.add(intostr(size));

在实际使用过程中,有可能用户在没有登陆服务器之前就使去获取邮件信息了

这时NMPOP3将触发OnConnectionRequired事件。

这时可在这里要求重新连

服务器。

procedureTfrmMail.NMPOP31ConnectionRequired(varhandled:

boolean);

handled:

用户可在listview控件中选择要看的邮件。

procedureTfrmMail.Listview1Click(varhandled:

varindex,I:

integer;

iflistview1.selected:

=nilthen

exit;

//获取所选的标识

index:

=strtoint(listview1.selected.capton);

//获取邮件

NMPOP31.GetMessage(index);

//获取邮件信息

=nmpop31.mailmessage.from;

=nmpop31.mailmessage.subject;

memo1.lines.assign(nmpop31.mailmessage.body);

其它信息显示

procedureTfrmMail.NMPOP31Success(sender:

tobject);

statusbar1.simpletext:

=’操作成功’;

procedureTfrmMail.NMPOP31Failure(sender:

=’操作失败’;

procedureTfrmMail.NMPOP31ConnectionFailed(sender:

procedureTfrmMail.NMPOP31InvalidHoat(varhandled:

showmessage(‘无效的主机’);

最后退出邮件服务器

procedureTfrmMail.btnDisConnectonClick(sender:

NMPOP31.disconnect;

procedureTfrmM

ail.NMPOP31Disconnect(sender:

=’断开连接’;

 

发送邮件NMSMTP

SMTP协议自身命令

HELO客户机用HELO命令向服务器标识身份

MAIL初始化邮件传输

RCPT在MAIL命令后,标识单个邮件接收人

NOOP无操作,服务器响应OK

DATARCPT之后(通常),表示所有邮件接收人已标识,初始化数据传输

HELP客户机可使用此命令查询服务器支持什幺命令

QUIT会话结束

NMSMTP

属性

1、ClearParams属性

为真时,邮件发送完毕会把PostMessage属性的值清空

2、EncodeType

指定邮件编码方式。

uuMIME—MIME编码;

unCode---UUEncoding编码

3、FinalHeader

指定最后的消息头标。

4、Host

SMTP服务器的主机名或IP地址。

5、LocalIP

返回客户机的IP地址,若有多个只返回一个。

6、Port

指定服务器的端口

7、PostMessage

是一个类,存储要发送的邮件信息。

具体如下:

lFromName:

发件人名称

lFromAdress:

发件人email地址。

lReplayToAdress:

回复地址

lOrgranization:

发件人所在地址。

lLocalProgram:

发件人所用的客户程序

lToAdress:

是Tstringlist对象,收件人的接收地址。

lToCC:

Tstringlist对象,抄送的email地址。

lToBCC:

Tstringlist对象,密送的email地址。

Tstringlist对象,指定的附件。

Tstringlist对象,邮件正文。

邮件主题。

lDate:

邮件发送日期,为空指当前日期。

9、ReplayNumber

只读属性,返回smtp服务器响应应答信息。

10、status

当前状态信息。

11、Timeout

毫秒级别的单位,如果规定时间Socket没有响应,触发异常。

12、TransactionReply

返回上一次命令的执行结果。

13、UserID

指定的用户名。

控件方法

中止发送,断开与smtp服务器的连接

2、ClearParameters

清空PostMessage。

3、Connect

登陆SMTP服务器,注意要先设好host,port属性。

Host非法触发OnValidHost事件,连接失败触发OnConnectFalied事件。

如果连接成功触发OnConnect事件。

4、DisConnect

断开与服务器的连接。

触发OnDisconnect事件。

5、ExpandList(MailList:

string):

Boolean;

该过程在SMTP服务器上检索一个邮件列表,如果有触发OnMailListReturn事件,可以取得这个邮件列表。

6、SendMail

发送邮件,事先要设好host,port,PostMessage

7、Verify(UserName:

检验用户名是否合法,合法为True;

事件:

1、OnAttachmentNotFound

如果没找到postMessage所指定的邮件,该事件触发,同时有传进附件名的参数。

2、OnAuthenticationFailed

当SMTP需要用户名和口令才能发

送,而事先没给用户名和密码或给出的有错,该事件触发。

3、OnConnect

与服务器连接成功后,触发该事件。

与服务器连接失败,触发该事件。

5、OnDisconnect

断开与服务器连接触发该事件。

6、OnEnacodeStart

当附件开始编码时,触发该事件

7、OnEnacodeEnd

当附件编码结束时,触发该事件。

参数FileName,初编码的附件。

8、OnFailure

当邮件发送不成功时,触发该事件

9、OnHeaderIncomplete

发送邮件时,当postmessage给出的头标信息不完整时,触发

10、OnHostResolved与OnIvalidHost

当服务器的主机名找到触发该事件,否则触发OnIvalidHost

11、OnMailListReturn

当程序调用ExpandList,每检索到一个email地址,就触发该事件一次。

12、OnRecipientNotFound

如果PostMessage所指定的收件人不成再时,触发该事件。

13、OnSendStart

邮件发送开始触发该事件。

14、OnSuccess

邮件发送成功触发该事件。

实例:

procedureTfrmSendMail.btnSendClick(Sender:

ifedtAdress.text=’’then

ifedtport.text=’’then

ifedtSendusertext=’’then

ifedtReceiver.text=’’then

NMSMTP1.host:

=edtAdress.text;

NMSMTP1.port:

=strtoint(edPort.text);

NMSMTP1.UserId:

=edtSenduser.text;

NMSMTP1.conncet;

procedureTfrmSendMail.NMSMTP1ConnectionFailed(Sender:

procedureTfrmSendMail.NMSMTP1Connection(Sender:

sendmessage(Handle,WM_LOGIN,0,0);

//自定义消息息传送。

产生WM_LOGIN事件

procedureTfrmSendMail.WMLOGIN(varMSG:

TWM);

//处理自定义消息

//这里发送邮件。

NMSmTP1.postmessage.fromadress:

=edtuserMail.text;

NMSmTP1.postmessage.fromname:

=edtsenderuser.text;

NMSmTP1.postmessage.subject:

=edtsubject.text;

NMSmTP1.postmessage.toadress.add(edtreceiver.text);

NMSmTP1.postmessage.attachments.addstrings(listbox1.items);

NMSmTP1.postmessage.body.assign(memo1.lines);

NMSMTP1.SENDMAIL;

NMSMTP1.DISCONNCET;

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2