用C 做個帶精靈的郵件通知程式

2021-06-16 02:01:36 字數 2408 閱讀 6051

visual c#是微軟公司推出的下一代程式開發語言,是微軟.net

框架中的的乙個重要組成部分。微軟的.net平台堪稱為新一代的網際網路平台。對於技術開發人員來說,.net平台的兩大特性是非常卓越的,首先是其所提供的公共語言執行時,也就是公用語言執行平台,另一方面就是其龐大而全面的統一程式設計類。visual c#就是通過呼叫這些類、物件來實現許多比較強大的功能。

在網際網路應用中,電子郵件一直佔據著重要的位置。網際網路上每天都有大量的電子郵件,我們每天都要花時間去收發郵件,而有時卻收不到一封郵件,有時卻很多。要是我們能做乙個郵件通知程式就好了。本文就向大家介紹用c#做個郵件通知程式,同時也向大家展示一下c#程式設計的一些特性。

一. 簡介:

這個郵件通知程式是乙個用來通知使用者的郵件伺服器

中是否有新郵件的tcp/ip程式。程式還帶有乙個精靈來通知使用者具體的新郵件數,所以使用者介面比較新奇。程式每隔5分鐘就自動連線到郵件伺服器進行新郵件的檢查。使用者還可以對程式進行配置:設定時間間隔,設定郵件伺服器位址以及埠號,設定使用者名稱以及密碼。此程式還是居於系統托盤的,所以是在後台執行的。

二. 工程步驟:

1. 在vs.net下新建乙個c#的windows應用程式的工程,不妨命名為「emailnotifier」。

圖12. 設計主介面和精靈介面:

先將主窗體的showintaskbar屬性設定為false,formborderstyle屬性設定為fixeddialog,text屬性設定為「配置引數」。

再在主窗體上新增五個標籤控制項(label control)、五個文字框控制項(textbox control)、兩個按鈕控制項(button control)、乙個系統托盤控制項(notifyicon control)、乙個上下文選單控制項(contextmenu control)以及乙個時鐘控制項(timer control)。

對各個控制項進行屬性設定:將五個標籤的text屬性分別設定為「郵件伺服器

圖3在新新增的窗體上我們要用到microsoft agent這個控制項,於是就匯入它到該工程中,圖示如下:

3. 重要的**部分:

在主窗體的**部分,因為我們要用到網路以及網路流等類的物件,所以首先得新增以下幾個重要的名字空間(namespace):

using system.net;

using system.net.sockets;

using system.io;

using system.text;

接著,給我們的類新增乙個networkstream物件來控制網路中的流。

private networkstream netstream;

給該類的建構函式新增如下**,設定時鐘的時間間隔以及使程式一開始就不可見而只有系統托盤。

timer1.interval=int32.parse(timespan.text);//設定時間間隔

this.opacity=0;//使窗體不可見

我們用到乙個重要的函式emailcheck()。這個函式先新建乙個tcpclient物件進行網路連線

,用乙個try-catch設法連線到使用者輸入的郵件伺服器

。如果連線成功,則用netstream物件取得網路流:netstream = tcpclient.getstream();最後完成資訊的傳送和獲取。函式如下:

private void emailcheck()

catch

//從郵件伺服器獲得相應

netstream = tcpclient.getstream();

if(netstream == null)

string returnmsg=readfromnetstream(ref netstream);

checkforerror(returnmsg);

//傳送使用者名稱資訊

writetonetstream(ref netstream, "user " + this.username.text);

returnmsg=readfromnetstream(ref netstream);

checkforerror(returnmsg);

//傳送密碼資訊

writetonetstream(ref netstream, "pass " + this.password.text);

returnmsg=readfromnetstream(ref netstream);

checkforerror(returnmsg);

stat();

netstream.close();

tcpclient.close();

} 上面的函式中用到了readfromnetstream()、writetonetstream()、stat()、checkforerror()等函式。 圖5

若有新郵件,精靈吉尼就會冒出來向你報告。

圖6

用c 做接受郵件的程式 jmailfree msi

0x00 要使 c 引用 com 物件和介面,需要在 c 內部版本中包含 com 介面的 net 框架定義。完成此操作的最簡單方法是使用 tlbimp.exe 型別庫匯入程式 它是乙個包括在 net 框架 sdk 中的命令列工具。tlbimp 將 com 型別庫轉換為 net 框架元資料,從而有效地...

ABAP程式傳送帶附件的郵件

類cl abap typedescr和它的子類的結構圖 cl abap typedescr cl abap datadescr cl abap elemdescr cl abap refdescr cl abap complexdescr cl abap structdescr cl abap ta...

c 傳送帶附件的郵件

網上找了很多傳送郵件的 測試發現連線有問題,比如tcp new tcpclient server,port 用server tp.126.com,port 25,連線不上,下面這個簡單的如果關閉防火牆和mcafee防毒軟體就可以傳送帶附件的郵件。使用 systemmail new systemmai...