APP下载

基于C++Builder 的电子邮件接收程序设计*

2022-08-04张静

科技与创新 2022年15期
关键词:调用控件电子邮件

张静

(河南省气象培训中心,河南 郑州450002)

在互联网上,与电子邮件相关的2 个协议是POP3(邮局协议)和SMTP(简单邮件传输协议)。其中,POP3 协议用于从POP3 服务器上接收邮件,而SMTP协议用于登录SM T P 服务器来发送邮件[1-2]。C++Builder 提供了NMPOP3 控件和NMSMTP 控件来实现这2 个邮件收发协议。本文利用C++Builder 中的NMPOP3 控件,创建一个能接收电子邮件的系统。

1 NMPOP3 控件的属性和方法

NMPOP3 控件用于从POP3 协议服务器的主机中接收邮件,所有POP3 接收邮件的功能都封装在该控件中,使用者只需修改该控件的属性、访问该控件的方法并对事件进行响应即可[3-4]。

1.1 NMPOP3 控件的属性

NMPOP3 控件的主要属性如表1 所示。

表1 NMPOP3 控件的属性

1.2 NMPOP3 控件的主要方法

NMPOP3 控件的主要方法如表2 所示。

表2 NMPOP3 控件的主要方法

表2 (续)

2 电子邮件接收程序设计

2.1 与服务器建立连接

在此步骤中,单击“Connect/Account”选项卡上的“连接服务器”,如图1 所示,将触发CntBtn 事件。在此事件处理函数中,先设置NMPOP3 控件的各项属性,然后与服务器建立连接,当连接成功后,设置此邮箱中的邮件数目。其源程序如下:

图1 连接与断开连接图

void __fastcall TRveForm::CntBtn(TObject*Sender)

{

...

MyPOP31->Host=HoEdt->Text;

MyPOP31->Port=StrToInt(PtEdt->Text);

MyPOP31->UserID=UIEdt->Text;

MyPOP31->Password=PWEdt->Text;

MyPOP31->Connect();

}

当客户成功连接到POP 服务器时,将触发OnConnect 事件,其代码如下:

MyStaBar1->SimpleText= “已经连接到服务器”;

当客户试图连接到服务器而失败时,将触发OnConnectionFailed 事件,其代码如下:

void__fastcallTRveForm::MyNMPOP31Connection Failed(TObject*Sender)

{

MyStaBar1->SimpleText = “连接服务器失败”;

}

2.2 显示邮件列表

显示邮件列表调用NMPOP3 控件的List()方法,其代码如下:

void __fastcall TRveForm::ListBtnClick(TObject

*Sender)

{

MyNMPOP31->List();

}

其中,NMPOP3 控件的List()方法触发OnList 事件,其代码如下:

void __fastcall TFmMyMain::MyNMPOP3List(int Msg,int Size)

{

If(Msg<2)

{

MyMo1->Clear();

MyMo1->Lines->Add(“邮件序号/邮件大小(字节)”);

}

MyMo1->Lines->Add(IntToStr(Msg)+ “ / ”+IntToStr(Size));

}

2.3 读取邮件信息

当邮件列表显示以后,就可以输入要读取的邮件编号,单击“Get Message”按钮显示邮件的详细内容,如图2 所示。首先调用NMPOP3 控件的GetMailMessage()方法,并将Edt5 中的邮件编号取出来,得到的邮件信息被保存在MailMessage 属性中。

图2 显示邮件图

其源程序如下:

void __fastcall TFmMyMain::Btn3Click(TObject*Sender)

{

MyNMPOP31->GetMailMessage(StrToInt(Edt5->Text));

Edt7->Text=MyNMPOP31->MailMessage->Subjec;

Edt9->Text=MyNMPOP31->MailMessage->Mess ageId;

myMe1->Lines->Assign(MyNMPOP31->MailMe ssage->Head);

myMe2->Lines->Assign(MyNMPOP31->MailMe ssage->Body);

}

单击“Get Summary”按钮,调用NMPOP3 控件的GetSummary()方法,显示邮件的概要信息,其代码如下:

void __fastcall TFmMyMain::Btn6Click(TObject*Sender)

{

MyNMPOP31->GetSummary(StrToInt(Edt5->Te xt));

Edt6->Text=MyNMPOP31->Summary->From;

Edt7->Text=MyNMPOP31->Summary->Subject;

Edt8->Text=ntToStr(MyNMPOP31->Summary->Bytes);

Edt9->Text=MyNMPOP31->Summary->MessageId;

}

单击“Delete”按钮,调用NMPOP3 控件的DeleteMailMessage()方法,删除邮件,其代码如下:

void __fastcall TRveForm::Btn7Click(TObject*Sender)

{

MyNMPOP31->DeleteMailMessage(StrToInt(Edt 5->Text));

}

2.4 断开与服务器的连接

单击“Disconnect”按钮,调用NMPOP3 控件的Disconnect()方法,断开与服务器的连接,其代码如下:

void __fastcall TRveForm::Btn2Ck(TObject*Sender)

{

MyNMPOP31->Disconnect();

}

当客户断开与服务器的连接时,将触发OnDisconnect 事件,其代码如下:

void __fastcall TRveForm::MyNMPOP31Dct(TObject*Sender)

{

If(MyStatusBar1!=0)

MyStatusBar1->SimpleText= “脱机工作”;

}

3 结语

本文基于C++Builder 开发平台,讨论了在应用程序中调用NMPOP3 控件接收电子邮件的方法,并设计了具体程序,其操作界面简单,同时经试验检测,具有很好的稳定性。

猜你喜欢

调用控件电子邮件
使用“填表单”微信小程序 统计信息很方便
基于.net的用户定义验证控件的应用分析
基于Android Broadcast的短信安全监听系统的设计和实现
小测试:你对电子邮件上瘾了吗?
利用RFC技术实现SAP系统接口通信
有奖问答
利用VF6.0的Timer控件实现动画效果
有奖问答
C++语言中函数参数传递方式剖析
Spreadsheet控件在Delphi数据库系统中的编程与应用