通過對C++BUILDER的組件設置,我們可以創建一個自己的POP3電子郵件接收程序。
一、建立一個工程文件
二、建立一個新的表單,設置它的caption屬性為Getmail,在上面放置一個TpageControl控件,單擊右鍵創建三個TabSheet(1,2,3)。在TabSheet1上放置四個Edit(1,2,3,4)控件並清除它們的Text屬性及兩個Botton(1,2),其中Edit1用以輸入POP3服務器的名稱;Edit2用以設置訪問端口號,我們設置它為110,並將它的Text屬性設為110;Edit3用以輸入用戶名;Edit4用以輸入口令。設Botton1的caption為“連接”,Botton2的caption為“斷開連接”。在TabSheet2上放置五個Edit(5,6,7,8,9)控件、兩個Memo控件和三個Botton(3,4,5),Edit5用來顯示郵件的編號;Edit6、Edit7、Edit8和Edit9分別用來顯示郵件的發送者、郵件的主題、大小及ID號;Memo1用來顯示郵件的正文;Memo2用來顯示郵件頭;Botton3、Botton4、Botton5的caption屬性分別設置為“刪除”、“郵件”和“郵件信息”。在TabSheet3上放置兩個Botton和一個Memo控件,其中Botton6的caption屬性為“郵件列表”;Botton7的caption為“清除列表”;Memo的用途自然為顯示郵件列表。在表單的底部放置一個StatusBar控件用以顯示工作狀態。最後,最重要的是在表單上放置一個NMPOP3控件,在這個程序裡,它是我們與POP3服務器通訊的核心。
三、編寫代碼
為Botton1的OnClick事件編寫代碼:
NMPOP31-〉AttachFilePath = ″.″; //設定郵件的存儲目錄
NMPOP31-〉DeleteOnRead = false; //讀完郵件後是否刪除
NMPOP31-〉ReportLevel = Status_Basic; //控制OnStatus事件和Status屬性報告的資料的數量
NMPOP31-〉TimeOut = 20000; //設置超時的時間
NMPOP31-〉Host = Edit1-〉Text; //設置pop3服務器的主機名
NMPOP31-〉Port = StrToInt(Edit2-〉Text); //設置pop3服務器的端口號
NMPOP31-〉UserID = Edit3-〉Text; //取得用戶名
NMPOP31-〉Password = Edit4-〉Text; //得到口令
NMPOP31-〉Connect(); //開始連接
Label10-〉Caption = ″# of Messages: ″+IntToStr(NMPOP31-〉MailCount); //顯示郵件的數量
為Botton2的OnClick事件編寫代碼:
NMPOP31-〉Disconnect(); //使之能夠與服務器斷開連接
為Botton3的OnClick事件編寫代碼,當點擊它時可以刪除郵件:
NMPOP31-〉DeleteMailMessage(StrToInt(Edit5-〉Text));
為Botton4的OnClick事件編寫代碼,當點擊它時顯示整個郵件:
NMPOP31-〉GetMailMessage(StrToInt(Edit5-〉Text));
Edit6-〉Text = NMPOP31-〉MailMessage-〉From; //通過MailMessage的From屬性得到發信人
Edit7-〉Text = NMPOP31-〉MailMessage-〉Subject; //通過MailMessage的Subjecet屬性得到主題
Edit9-〉Text = NMPOP31-〉MailMessage-〉MessageId; //通過MailMessage的MessageIds屬性得到Id
Memo2-〉Lines-〉Assign(NMPOP31-〉MailMessage-〉Head);
Memo1-〉Lines-〉Assign(NMPOP31-〉MailMessage-〉Body);
if (NMPOP31-〉MailMessage-〉Attachments-〉Text != ″″)
ShowMessage(″Attachments:\n″+NMPOP31-〉MailMessage-〉Attachments-〉Text);
為Botton5的OnClick事件編寫代碼,點擊它時將在Memo中顯示郵件的概要信息:
NMPOP31-〉GetSummary(StrToInt(Edit5-〉Text));
Edit6-〉Text = NMPOP31-〉Summary-〉From;
Edit7-〉Text = NMPOP31-〉Summary-〉Subject;
Edit8-〉Text = IntToStr(NMPOP31-〉Summary-〉Bytes);
Edit9-〉Text = NMPOP31-〉Summary-〉MessageId;
為Botton6的OnClick事件編寫代碼,點擊它時將在Memo3中顯示郵件列表:
NMPOP31-〉List(); //得到郵件的數量和大小的列表
為Botton7的OnClick事件編寫代碼,點擊它時將清除Memo3中的郵件列表:
Memo3-〉Clear();