JavaMail是個歷史悠久的寄送電子郵件Email套件,由Sun公司所開發(Oracle),因為電子郵件數年來並沒有多大的改變,所以一直都是十分方便的一個套件,使用方法可參考Java程式Mail、EDM(電子型錄)寄送這篇。
而現在有了另一個framework,是由Apache組職所提供的開放原始碼套件Apache Commons email,使用上更為簡單,而且支援度也很高,像是gmail要使用javamail來寄送,就需要設定繁雜的Sectury項目,而Apache commons email就顯的簡單許多,底下的範例就是使用gmail的smtp.gmail.com來當SMTP服務寄送信件的,我把它應用在之前的留言板,當有人留言時,就可以馬上接到信件的通知。

詳細文章
這個範例主要的概念是抓取網路上EDM的html內容,讀取外部的寄送email清單文字檔,依續一個個email寄送出EDM內容,寄送的每一封信件都使用thread來獨立完成,而且寄送中間都有固定的間隔時間。
JavaMail是Java用來處理Mail事件的一個Framework,提供寄信SMTP、收信POP3等常用到的Mail Protocol,主要由sun(目前為oracle)來維護,是一個官方的套件,可由此下載。
發送Mail的主體程式Thread
Mail發送的內容為html,所以需要使用Multipart來承載內容,如果是純文字則可直接使用Message的setContent來加入信件內容。
詳細文章
之前主機一直被強迫斷線,而且設定了自動ADSL重撥都沒作用,應該是程式被強迫關閉了,所以重撥功能也才沒做用,本來想利用Windows排程,定時一直自動重撥ADSL,不過重撥後還要把ICS Bind DNS Server重啟才有作用,所以簡單的規畫了一個程式,可以設定在Windows排程式,開機後執行,而我是設定在ADSL自動撥號及DNS啟動後執行(一個command檔)。
程式功能很簡單,主要在啟動時把需要排程執行的thread class全都載入及執行,而定時的部份在每一個thread class裡,利用sleep來間隔執行,不過這會有執行內容時間上的問題,程式還有很多需要改進的地方,像是讀取外部檔來設定排程、排程中斷等目前都還沒加入,等有空時再慢慢增加。

測試ADSL是否斷線是利用執行command指令ipconfig /all 來取得default gateway是否存在著ip位置,如果不存在則執行command 來啟動撥號ADSL,並重啟ICS Bind DNS Server,設定時間是30分鐘檢查一次。不過這是我的環境,需要的人可能要修改些地方。
程式碼如下:
詳細文章
Posted in
command,
Java,
opensource,
架站,
程式 on 2010/11/29 by yku 瀏覽:
1,342 瀏覽數 —
留下回應
標籤:
adsl,
command,
dos,
Java,
opensource,
source,
thread
這是一個Thread的簡單應用,利用一個Thread在背景執行,每一秒設定Form上的元件來顯示時分秒,因為Form上的元件不能在其它不是Form本身Thread的執行緒上執行,所以要利用Form的invoke來呼叫Delegate Function設定元件值。
Label1是時、Label2是分、Label3秒,然後run這個function每一秒會去加秒數,當為六十秒時自動幫分加一,而秒數變零,當分為六十分時,自動幫時加一,而分變零,當時為二十四時,時變零。
Form的設定如下:

以下是執行畫面:

詳細文章
Java的Thread是利用繼承Thread或是實作Runable來實現的,而C#確是不一樣的,
C#利用一個new System.Threading.Thread物件,建構時傳入想要在執行緒裡動作的事件,
啟動方法跟Java一樣,利用Start()來開始這個執行序,
System.Threading.Thread t = new System.Threading.Thread(要執行的Function名稱);
啟動方式
t.Start();
那如果有參數要傳入呢?
可以撰寫一個Class,先建構及設定好需要的參數,再把這個class實作的物件及方法傳入實作的System.Threading.Thread物件裡
就可以啦
Object x = new Object();
System.Threading.Thread t = new System.Threading.Thread(x.方法);
這裡有一個範例可以參考一下
先建立一個Class,名叫thread1
利用無窮迴圈讓內容一直跑,再利用Sleep(毫秒)來使其停一秒再執行。
詳細文章