用 C++BUILDER 實現 POP3 電子郵件的接收 (轉)
透過對 C++BUILDER 的設定,我們可以建立一個自己的POP3電子接收。
一、建立一個工程
二、建立一個新的表單,設定它的caption屬性為Get,在上面放置一個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的用途自然為顯示郵件列表。在表單的底部放置一個Statar控制元件用以顯示工作狀態。最後,最重要的是在表單上放置一個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->Pass = Edit4->Text; //得到口令
NMPOP31->Connect(); //開始連線
Label10->Caption = "# of Messages: "+IntToStr(NMPOP31->MailCount); //顯示郵件的數量
為Botton2的OnClick事件編寫程式碼:
NMPOP31->Dinnect(); //使之能夠與伺服器斷開連線
為Botton3的OnClick事件編寫程式碼,當點選它時可以刪除郵件:
NMPOP31->DeletMessage(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();
為NMPOP3的事件編寫程式碼
1. 為它的OnConnect事件編寫程式碼
StatusBar1->SimpleText = "Connected"; //連線後在狀態列顯示已連線
2. 為它的OnConnectionFailed事件編寫程式碼
ShowMessage("Connection Failed"); //若連線失敗則報告
3. 為它的OnConnectionRequired事件編寫程式碼
AnsiString BoxCaption;
AnsiString BoxMsg;
BoxCaption = "請求連線";
BoxMsg = "請求連線,連線嗎?";
if (MessageBox(0, &BoxMsg[1], &BoxCaption[1], MB_YESNO + MB_ICONEXCLAMATION) == IDYES)
{
handled = TRUE;
Form1->Button1Click(this);
}
4.為它的OnDisconnect事件編寫程式碼
if (StatusBar1 != 0)
StatusBar1->SimpleText = "Disconnected"; //斷開連線後在狀態列顯示已斷開
5. 為它的OnFailuer事件編寫程式碼
ShowMessage("操作失敗!");
6. 為它的OnHostResovled事件編寫程式碼
StatusBar1->SimpleText = "Host Resolved";
7.為它的OnInvailidHost事件編寫程式碼
AnsiString NewHost;
if (InputQuery("主機名!", "請重新輸入新的主機名",NewHost))
{
NMPOP31->Host = NewHost;
handled = true;
}
8. 為它的OnList事件編寫程式碼
if (Msg < 2)
{
Memo3->Clear();
Memo3->Lines->Add("Message Number / Message Size");
}
Memo3->Lines->Add(IntToStr(Msg)+"/ "+IntToStr(Size));
9. 為它的OnListPacketRecvd事件編寫程式碼
StatusBar1->SimpleText = IntToStr(NMPOP31->BytesRecvd)+" bytesof "+IntToStr(NMPOP31->BytesTotal)+" Received";
10. 為它的OnReset事件編寫程式碼
ShowMessage("重置刪除標誌");
11. 為它的OnRetrieveEnd事件編寫程式碼
Form1->Cursor = crDefault;
StatusBar1->SimpleText = "恢復完成";
12. 為它的OnRetrieveStart事件編寫程式碼
Form1->Cursor =crHourGlass;
StatusBar1->SimpleText = "恢復開始";
13. 為它的OnStatus事件編寫程式碼
if (StatusBar1 != 0)
StatusBar1->SimpleText = Status;
14. 為它的OnSuccess事件編寫程式碼
StatusBar1->SimpleText = "操作成功"。
至此,我們的電子郵件程式就完成了,編譯執行後,輸入你的pop3伺服器名,你就可以接收到你的電子郵件了,怎麼樣?試一試吧。
-=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=-/
__________/LB___ OUTINN
/ _[]_ /____
/_________/| () |__ /">
| ____ /-| __ |-| Welcome to visit OUTINN!
|__|==|___| || |__|
-=--=--=- |_||_| =- Fancy,
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-990003/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 用 C++Builder 編寫傳送電子郵件軟體 (轉)C++UI
- 自制Pop3郵件接收系統(二):利用TcpClient得到Pop3的郵件列表資料 (轉)TCPclient
- 編寫基於的POP3的電子郵件程式 (轉)
- 自制Pop3郵件接收系統(一):利用MatchEvaluator實現HZ的解碼 (轉)
- Java 實現郵件的接收Java
- 用ASP發電子郵件 (轉)
- JavaMail學習筆記(四)、使用POP3協議接收並解析電子郵件(全)JavaAI筆記協議
- SpringBoot實現傳送電子郵件Spring Boot
- 用oracle傳送電子郵件Oracle
- 用英文寫電子郵件的常用句式
- python實現郵件接收、附件下載Python
- POP3協議(電子郵件郵局協議)中UIDL和TOP命令在實際使用中的作用協議UI
- 直接用通訊錄Excel群發電子郵件(轉)Excel
- 用Visual C++編寫電子郵件程式 (轉)C++
- 如何傳送電子郵件到別人郵箱?電子郵件傳送的方法
- 在VC中呼叫預設的電子郵件程式傳送郵件 (轉)
- 31.2企業級開發進階3.2:接收電子郵件
- 郵件開發:接收解析郵件
- 玩轉展會電子郵件營銷
- 電子郵件“人到中年”
- 60. 電子郵件
- 無法傳送或接收電子郵件,Cisco PIX 或 Cisco ASA 的防火牆防火牆
- 一款簡單實用的桌面電子郵件客戶端客戶端
- 利用W3 JMAIL元件收POP3郵件 (轉)AI元件
- 用ASP實現電子賀卡 (轉)
- 7種有關電子郵件的錯誤想法 (轉)
- 共享電子郵件的運作方式
- 管理電子郵件的7個方法
- 電子郵件管理的COTA法則
- 資訊圖:電子郵件的未來
- 怎樣高效的多郵箱管理—實現同步管理所有電子郵件賬戶
- 電子郵件協議及GO傳送QQ郵件協議Go
- 郵件協議之POP3的講解協議
- Jboss3.0-Tomcat4.03下運用JavaMail發電子郵件. (轉)S3TomcatJavaAI
- 對POP3郵箱中的新郵件的判斷方法
- 使用python傳送郵件和接收郵件Python
- 直接用通訊錄Excel群發電子郵件Excel
- 電子郵件被黑客追蹤黑客