FLEX AS3 使用 SOCKET 連接 POP3
因為工作上的需要想要撰寫一支程式可以自動收取 POP3 SERVER 上的郵件,並且自動下載附加檔案存在電腦中,並且還可以將郵件寫入資料庫中備份。
原先的構想是想用 ColdFusion 的 Tag <cfpop> 這個標籤來完成,但是畢竟是人家寫好的程式碼,有些東西還是比較不合乎需求,例如我要將每封郵件都存在各自的資料夾中,雖然 <cfpop> 就可以做到,但是效能總是差了一點,因此想說用 AS3 能否做到這樣的功能,FLEX AS3 中提供了一組 Socket 類別,可以讓我們連接 POP3 SERVER
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | <?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" fontSize="12">
<mx:Script>
<![CDATA[
public var mysocket:Socket=null;
private function startConnect():void{
this.mysocket=new Socket("pop3.mail2000.com.tw", 110);
this.mysocket.addEventListener(ProgressEvent.SOCKET_DATA, process);
}
private function endConnect():void{
this.mysocket.writeUTFBytes("quit\n");
this.mysocket.flush();
this.textArea.text=this.textArea.text + this.mysocket.readUTFBytes(this.mysocket.bytesAvailable);
}
private function process(event:ProgressEvent):void{
var tmpStat:String=this.mysocket.readUTFBytes(this.mysocket.bytesAvailable);
if (tmpStat.indexOf("+OK MPOP3 Server") != -1)
{
mysocket.writeUTFBytes("user 帳號\n");
}
if (tmpStat.indexOf("+OK Password required") != -1)
{
mysocket.writeUTFBytes("pass 密碼\n");
}
if (tmpStat.indexOf("+OK heydod has") != -1)
{
mysocket.writeUTFBytes("retr 1\n");
}
this.textArea.text=this.textArea.text + tmpStat;
mysocket.flush();
}
]]>
</mx:Script>
<mx:TextArea width="100%" height="50%" id="textArea"/>
<mx:HBox width="100%" horizontalAlign="center">
<mx:Button label="連線" click="startConnect()"/>
<mx:Button label="斷線" click="endConnect()"/>
</mx:HBox>
</mx:Application> |
這個範例碼可以幫我們取得 POP SERVER 上的郵件,但是每封郵件都尚未解析,因此我們還要另外將 HEADER 與 BODY 以及郵件的附加檔案儲存起來,不過這可就大工程啦。
Random Posts
Loading…
相關文章 :









大大 想請您指點迷津~
我依您上面的格式 依樣畫葫蘆連了一個我自己做的 TCP SERVER
該SERVER 是用 BCB 軟體寫的.
然後 我直接在FLEX 編譯執行 該專案.
都能正常的連接到我的 TCPSERVER
可是我將該專案得資料 拿到另一台電腦後,卻變成無法正常連線
實際上有連上 但馬上就斷線(在TCPServer 那邊有看到連接進去 但又馬上斷線…)
唯獨在 寫專案的這台電腦上 無此問題…是否有哪些要注意的?
還請開通指點@@”
你在對方電腦安裝 DEBUG 的 FLASH PLAYER
看看是甚麼錯誤訊息
如果沒有錯 應該代表順利連上
那應該是其他問題了…
因為我用 SOCKET 只有連過 POP 跟 FTP 所以我也不是很清楚
用來做遊戲 SOCKET 會怎樣~
您好,我想请教一个问题,用SOCKET连接FTP,出现安全策略的问题应该如何解决呢?
我在本地自己搞了一个FTP服务器,地址为本机地址192.168.16.21,然后在FLEX里面通过SOCKET与之连接。出现下面错误不知道该如何解决,郁闷一天了。。。请问连接FTP需要什么注意的吗?
SecurityError–>Error #2048: 安全沙箱冲突:file://C:\Documents and Settings\Administrator\My Documents\Flex Builder 3\FlexFtpUpload\bin-debug\FlexFtpUpload.swf 不能从 192.168.16.12:21 加载数据。
如果方便的话,希望可以请教下。我QQ779425883,谢谢
@zhenjiaseu
我當初在 DEBUG 模式下是可以正常連結
但是因為我沒有實機使用
所以我不知道會不會有安全性的影響
這點可能要再另外測試
不過 2048 的確是跨網域的安全性問題
恩,谢谢你的回答。
Adobe的安全策略头疼啊。。。