锘??xml version="1.0" encoding="utf-8" standalone="yes"?> 1銆俕\d+$銆銆//鍖歸厤闈炶礋鏁存暟錛堟鏁存暟 + 0錛?nbsp;
2銆俕[0-9]*[1-9][0-9]*$銆銆//鍖歸厤姝f暣鏁?nbsp;
3銆俕((-\d+)|(0+))$銆銆//鍖歸厤闈炴鏁存暟錛堣礋鏁存暟 + 0錛?nbsp;
4銆俕-[0-9]*[1-9][0-9]*$銆銆//鍖歸厤璐熸暣鏁?nbsp;
5銆俕-?\d+$銆銆銆銆//鍖歸厤鏁存暟
6銆俕\d+(\.\d+)?$銆銆//鍖歸厤闈炶礋嫻偣鏁幫紙姝f誕鐐規暟 + 0錛?nbsp;
7銆俕(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$銆銆//鍖歸厤姝f誕鐐規暟
8銆俕((-\d+(\.\d+)?)|(0+(\.0+)?))$銆銆//鍖歸厤闈炴嫻偣鏁幫紙璐熸誕鐐規暟 + 0錛?nbsp;
9銆俕(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$銆銆//鍖歸厤璐熸誕鐐規暟
10銆俕(-?\d+)(\.\d+)?$銆銆//鍖歸厤嫻偣鏁?nbsp;
11銆俕[A-Za-z]+$銆銆//鍖歸厤鐢?6涓嫳鏂囧瓧姣嶇粍鎴愮殑瀛楃涓?nbsp;
12銆俕[A-Z]+$銆銆//鍖歸厤鐢?6涓嫳鏂囧瓧姣嶇殑澶у啓緇勬垚鐨勫瓧絎︿覆
13銆俕[a-z]+$銆銆//鍖歸厤鐢?6涓嫳鏂囧瓧姣嶇殑灝忓啓緇勬垚鐨勫瓧絎︿覆
14銆俕[A-Za-z0-9]+$銆銆//鍖歸厤鐢辨暟瀛楀拰26涓嫳鏂囧瓧姣嶇粍鎴愮殑瀛楃涓?nbsp;
15銆俕\w+$銆銆//鍖歸厤鐢辨暟瀛椼?6涓嫳鏂囧瓧姣嶆垨鑰呬笅鍒掔嚎緇勬垚鐨勫瓧絎︿覆
16銆俕[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$銆銆銆銆//鍖歸厤email鍦板潃
17銆俕[a-zA-z]+://鍖歸厤(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\S*)?$銆銆//鍖歸厤url
18銆傚尮閰嶄腑鏂囧瓧絎︾殑姝e垯琛ㄨ揪寮忥細 [\u4e00-\u9fa5]
19銆傚尮閰嶅弻瀛楄妭瀛楃(鍖呮嫭姹夊瓧鍦ㄥ唴)錛歔^\x00-\xff]
20銆傚簲鐢細璁$畻瀛楃涓茬殑闀垮害錛堜竴涓弻瀛楄妭瀛楃闀垮害璁?錛孉SCII瀛楃璁?錛?br />
String.prototype.len=function(){return this.replace([^\x00-\xff]/g,"aa").length;}
21銆傚尮閰嶇┖琛岀殑姝e垯琛ㄨ揪寮忥細\n[\s| ]*\r
22銆傚尮閰岺TML鏍囪鐨勬鍒欒〃杈懼紡錛?<(.*)>.*<\/\1>|<(.*) \/>/
23銆傚尮閰嶉灝劇┖鏍肩殑姝e垯琛ㄨ揪寮忥細(^\s*)|(\s*$)
* 姝e垯琛ㄨ揪寮忕敤渚?br />
* 1銆乛\S+[a-z A-Z]$ 涓嶈兘涓虹┖ 涓嶈兘鏈夌┖鏍?nbsp; 鍙兘鏄嫳鏂囧瓧姣?br />
* 2銆乗S{6,} 涓嶈兘涓虹┖ 鍏綅浠ヤ笂
* 3銆乛\d+$ 涓嶈兘鏈夌┖鏍?涓嶈兘闈炴暟瀛?br />
* 4銆?.*)(\.jpg|\.bmp)$ 鍙兘鏄痡pg鍜宐mp鏍煎紡
* 5銆乛\d{4}\-\d{1,2}-\d{1,2}$ 鍙兘鏄?004-10-22鏍煎紡
* 6銆乛0$ 鑷沖皯閫変竴欏?br />
* 7銆乛0{2,}$ 鑷沖皯閫変袱欏?br />
* 8銆乛[\s|\S]{20,}$ 涓嶈兘涓虹┖ 浜屽崄瀛椾互涓?br />
* 9銆乛\+?[a-z0-9](([-+.]|[_]+)?[a-z0-9]+)*@([a-z0-9]+(\.|\-))+[a-z]{2,6}$閭歡
* 10銆乗w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*([,;]\s*\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*)* 杈撳叆澶氫釜鍦板潃鐢ㄩ楀彿鎴栫┖鏍煎垎闅旈偖浠?br />
* 11銆乛(\([0-9]+\))?[0-9]{7,8}$鐢佃瘽鍙風爜7浣嶆垨8浣嶆垨鍓嶉潰鏈夊尯鍙蜂緥濡傦紙022錛?7341628
* 12銆乛[a-z A-Z 0-9 _]+@[a-z A-Z 0-9 _]+(\.[a-z A-Z 0-9 _]+)+(\,[a-z A-Z 0-9 _]+@[a-z A-Z 0-9 _]+(\.[a-z A-Z 0-9 _]+)+)*$
* 鍙兘鏄瓧姣嶃佹暟瀛椼佷笅鍒掔嚎錛涘繀欏繪湁@鍜?鍚屾椂鏍煎紡瑕佽鑼?閭歡
* 13 ^\w+@\w+(\.\w+)+(\,\w+@\w+(\.\w+)+)*$涓婇潰琛ㄨ揪寮忎篃鍙互鍐欐垚榪欐牱瀛愶紝鏇寸簿緇冦?br />
14 ^\w+((-\w+)|(\.\w+))*\@\w+((\.|-)\w+)*\.\w+$
]]>
涓涓┗鎵庡湪澶╂觸鐨勬櫘閫氱▼搴忓憳錛屽綋涓狿M,TL,CODER 灝辨槸娌℃湁褰撹繃CEO銆?br />
My idiom:Where there is a will,there is a way!
娉細鍔犵彮鍐欎綔錛岃漿杞借钁楀悕鍑哄錛侊紒
James Server涔熸槸涓涓偖浠跺簲鐢ㄥ鉤鍙般侸ames宸ョ▼鍚屾椂寮鍙慉pache Mailet API,騫朵笖James Server 鏄竴涓狹ailet瀹瑰櫒錛岃繖鐐逛嬌寰楅偖浠跺鐞嗘洿瀹規槗璁捐錛岀紪鍐欏拰閮ㄧ講鑷畾涔夌殑搴旂敤紼嬪簭銆傛ā鍧楀寲鍜岃嚜瀹氫箟鏄疛ames鐨勪紭鐐癸紝瀹冨厑璁哥鐞嗗憳鍘誨垱寤哄己澶ф槗鐢ㄧ殑搴旂敤紼嬪簭銆?/p>
James鏋勫緩鍦ˋvalon Application Framework錛岃繖涓鏋朵績榪涗簡璁稿寮鍙戝疄璺碉紝渚嬪闈㈠悜緇勪歡寮鍙戝拰IOC銆侸ames鍥婃嫭浜哖hoenix Avalon Framework container錛屽畠涓篔ames server濂犲畾浜嗗己澶у拰紼沖畾鐨勫熀紜銆?/p>
榪欑瘒鏂囨。浠嬬粛浜咼ames鐨勬蹇靛拰James鐨勫疄鐜幫紝榪樻湁瀹夎銆侀厤緗墜鍐岋紝涓哄紑鍙戜漢鍛榖uild James Server銆?/p>
I. James 姒傚康
鎽樿(summary):
--The James Server
James 鏄竴涓紑婧愰」鐩?涓轟簡鍒涘緩涓涓潥鍥?鐏墊椿,寮哄ぇ鐨勪紒涓氱被鏈嶅姟,騫跺彲鎻愪緵閭歡鍜岄偖浠剁浉鍏崇殑鏈嶅姟.涔熻璁捐涓洪珮鍙畾鍒舵?鍏佽綆$悊鍛樺幓鐏墊椿閰嶇疆James.
James Server 鏄瀯寤哄湪Avalon Framework涓婄殑.鏍囧噯鐨凧ames鍙戣鐗堟湰鍖呮嫭浜哖hoenix Avalon Framework 瀹瑰櫒.闄や簡涓篔ames鎻愪緵鍧氬浐鐨勬湇鍔℃灦鏋?Phoenix 鐨勪嬌鐢ㄥ厑璁窲ames綆$悊鍛樺幓閮ㄧ講瀹冧滑鑷繁鐨勫簲鐢ㄧ▼搴忓埌瀹瑰櫒涓?榪欎簺搴旂敤紼嬪簭鍦ㄩ偖浠跺鐞嗚繃紼嬩腑鑳借璋冪敤.
James server鐨勫疄鐜扮敱涓浜涘畬鏁寸殑鏈嶅姟闆嗗悎鍜岀浉鍏崇殑緇勪歡鏋勬垚,闆嗘垚鍦ㄤ竴璧?瀹炵幇閭歡瑙e喅鏂規.榪欎簺緇勪歡鎻忚堪濡備笅.
--POP3 Service
POP3 鍗忚鍏佽鐢ㄦ埛鍘昏幏鍙栭偖浠舵秷鎭?鏅亶鐢ㄤ簬瀹㈡埛绔笅杞藉拰綆$悊閭歡淇℃伅.
James鏄疨OP3鏈嶅姟鐨勪竴涓畝鍗曠洿鎺ュ疄鐜?瀹冧笌瑙勮寖涓鑷村茍涓旀渶澶у寲鍏煎閫氱敤鐨凱OP3瀹㈡埛绔?姝ゅ,James鑳借POP3瀹㈡埛绔嬌鐢⊿SL/TLS榪炴帴.
--SMTP Service
SMTP鏄湪internet涓婂彂閫佸拰杞Щemali鐨勬爣鍑嗘柟娉?James鎻愪緵鍩轟簬SMTP瑙勮寖鎵鏈夊姛鑳界殑瀹炵幇,鏀寔涓浜涘彲閫夌壒鎬?渚嬪娑堟伅澶у皬闄愬埗,SMTP楠岃瘉,鍔犲瘑鐨?瀹㈡埛/鏈嶅姟鍣?閫氫俊.
--NNTP Service
NNTP鐢ㄤ簬瀹㈡埛绔粠鏂伴椈鏈嶅姟鍣ㄥ瓨鍌ㄥ拰鑾峰彇娑堟伅.James閫氳繃瀹炵幇NNTP瑙勮寖瀹炵幇浜嗘湇鍔$殑浜や簰,榪樻湁涓哄瓨鍌ㄦ柊闂繪秷鎭墍鎻愪緵鐨勪粨搴?James綆鍗曞拰鐩存帴鐨勫疄鐜?浣嗘敮鎸佷竴浜涢澶栫殑鐗規?渚嬪NNTP楠岃瘉,鍔犲瘑鐨?瀹㈡埛/鏈嶅姟鍣?閫氫俊.
--FetchMail
FetchMail ,涓嶅儚鍏朵粬鐨凧ames緇勪歡,榪欎笉鏄竴涓猂FC鐨勫疄鐜?鐒惰?榪欎釜緇勪歡鍏佽綆$悊鍘婚厤緗甁ames,鑳藉浠庢洿澶氱殑POP3鏈嶅姟鑾峰彇Email鍜岃漿縐婚偖浠跺埌鏈湴.榪欐柟渚垮湪涓嶅悓鐨勬満鍣ㄤ笂鐨勫涓處鎴峰悎騫墮偖浠惰漿縐誨埌涓涓敤鎴?This is useful for consolidating mail delivered to a number of accounts on different machines to a single account.)
---The SpoolManager, Matchers, and Mailets
褰揓ames澶勭悊鏀舵潵鐨勯偖浠舵椂,James浠庡紩鎿庝笂鍖哄垎涓嶅悓鐨勬湇鍔?SMTP,FecthMail)鏉ヨ漿縐婚偖浠?SpoolManager 緇勪歡鏄疛ames鐨勯偖浠跺鐞嗗紩鎿?James鐨凷poolManager緇勪歡鏄竴涓狹ailet瀹瑰櫒,It is these mailets and matchers that actually carry out mail processing.
--Repositories
James鏈夎澶氫笉鍚岀殑浠撳簱鍘誨瓨鍌ㄦ秷鎭暟鎹?email,news messages) 鍜岀敤鎴蜂俊鎭?鐢ㄦ埛浠撳簱瀛樺偍鐢ㄦ埛淇℃伅,鍖呮嫭鐢ㄦ埛鍚嶉獙璇佷俊鎭拰鍒悕.閭歡浠撳簱瀛樺偍宸茶杞Щ鐨勬秷鎭?Spool浠撳簱瀛樺偍姝e湪琚鐞嗙殑娑堟伅.鏈鍚?鏂伴椈浠撳簱琚敤浣滃瓨鍌ㄦ柊闂繪秷鎭?鍙﹀,浠栦滑瀛樺偍浠涔堢被鍨嬬殑鏁版嵁,浠撳簱浠ユ暟鎹瓨鍌ㄥ湪浠涔堝湴鏂規潵鍖哄垎.鏈?縐嶅瓨鍌ㄧ被鍨?-File,Database 鍜孌BFile.
--RemoteManager
James鎻愪緵涓涓畝鍗曠殑telnet-base 鎺у埗鎺ュ彛,閫氳繃榪欎釜鎺ュ彛浣犺兘娣誨姞鍜屽垹闄ょ敤鎴?閰嶇疆姣忎釜鐢ㄦ埛鐨勫埆鍚嶅拰forward addresses鍜屽仠姝㈡湇鍔?
鐩爣綆$悊鐨凷MART鍘熷垯錛屽嵆鏄細
銆銆1. 鐩爣蹇呴』鏄叿浣撶殑錛圫pecific錛夛紱
銆銆2. 鐩爣蹇呴』鏄彲浠ヨ 閲忕殑錛圡easurable錛夛紱
銆銆3. 鐩爣蹇呴』鏄彲浠ヨ揪鍒扮殑錛圓ttainable錛夛紱
銆銆4. 鐩爣蹇呴』鍜屽叾浠栫洰鏍囧叿鏈夌浉鍏蟲э紙Relevant錛夛紱
銆銆5. 鐩爣蹇呴』鍏鋒湁鏄庣‘鐨勬埅姝㈡湡闄愶紙Time-based錛夛紱