純as發送email(Flex)

來源:互聯網
上載者:User

    近來在做訊息項目時候,我發現as有那麼強大的邏輯能力,為什麼不用來發送email。發送email時候,我們還可以把壓力留給使用者,留在前台,那麼後台可以減負,在一些需要大量發送資訊的系統中,無疑有一定的用處的。

package com.shine.framework.mail.util<br />{<br />import flash.events.Event;<br />import flash.events.ProgressEvent;<br />import flash.events.SecurityErrorEvent;<br />import flash.net.Socket;<br />import flash.utils.ByteArray;</p><p>import mx.controls.Alert; </p><p>public class MailUtil<br />{<br />private var socket:Socket;<br /> private var smtp:String;<br /> private var _user:String;<br /> private var _pwd:String;<br /> private var _mailFrom:String;<br /> private var _mailTo:String;<br /> private var _subject:String;<br /> private var _content:String;<br /> private var num:int=99;</p><p>public function MailUtil(smtp:String)<br />{<br />initSocket(smtp);<br />}</p><p>public function initSocket(smtp:String):void<br /> {<br /> this.smtp = smtp;<br /> if(socket==null || !socket.connected)<br /> {<br /> socket = new Socket();<br /> socket.connect(smtp,25);<br /> socket.addEventListener(Event.CONNECT,ConnectionHandler);<br /> socket.addEventListener(Event.CLOSE,CloseHandler);<br /> socket.addEventListener(ProgressEvent.SOCKET_DATA,ReceiveHandler);<br /> socket.addEventListener(SecurityErrorEvent.SECURITY_ERROR,ErrorHandler);<br /> }<br /> } </p><p> private function ErrorHandler(evt:SecurityErrorEvent):void<br /> {<br /> Alert.show("error!");<br /> Alert.show(String(evt.text));<br /> } </p><p> public function ConnectionHandler(evt:Event):void<br /> {<br /> Alert.show("連結成功");<br /> } </p><p> public function CloseHandler(evt:Event):void<br /> {<br /> Alert.show("已經從伺服器斷開");<br /> } </p><p> private function ReceiveHandler(evt:Event):void<br /> {<br /> var msg:String = "";<br /> while(socket.bytesAvailable)<br /> {<br /> msg += socket.readMultiByte(socket.bytesAvailable,"utf8");<br /> }<br /> //Alert.show(msg);<br /> if(num==0){<br /> sendUserName(_user);<br /> num++;<br /> }else if(num==1){<br /> sendPassword(_pwd);<br /> num++;<br /> }else if(num==2){<br /> setFromandTo(_mailFrom,_mailTo);<br /> num++;<br /> }else if(num==3){<br /> sendContent(_subject,_content);<br /> num++;<br /> }else if(num==4){<br /> Alert.show("發送成功");<br /> num++;<br /> }<br /> } </p><p> public function Send(user:String, pwd:String, mailFrom:String, mailTo:String,subject:String,content:String):void<br /> {<br /> if(socket==null || !socket.connected)<br /> {<br /> initSocket(this.smtp);<br /> } </p><p> this._user=user;<br /> this._pwd=pwd;<br /> this._mailFrom=mailFrom;<br /> this._mailTo=mailTo;<br /> this._subject=subject;<br /> this._content=content;</p><p> sendHello();<br /> num=0;<br /> } </p><p> private function sendHello():void{<br /> sendMessage("HELO mail");<br /> sendMessage("AUTH LOGIN");<br /> } </p><p> private function sendUserName(user:String):void{<br /> sendMessage(Base64.encode(user));<br /> }</p><p> private function sendPassword(pwd:String):void{<br /> sendMessage(Base64.encode(pwd));<br /> }</p><p> private function setFromandTo(mailFrom:String,mailTo:String):void{<br /> sendMessage("MAIL FROM: <"+mailFrom+">");<br /> sendMessage("RCPT TO: <"+mailTo+">");<br /> sendMessage("DATA");<br /> }</p><p> private function sendContent(subject:String,content:String):void{<br /> sendMessage("Content-Type: text/html");<br /> sendMessage("Subject: "+subject);<br /> sendMessage("");<br /> sendMessage("");<br /> sendMessage(content);<br /> sendMessage(".");<br /> }</p><p> internal function sendMessage(msg:String):void<br /> {<br /> var message:ByteArray = new ByteArray();<br /> message.writeUTFBytes(msg+"/r/n");<br /> socket.writeBytes(message);<br /> socket.flush();<br /> }<br />}<br />} 

 

調用類

<?xml version="1.0" encoding="utf-8"?><br /><mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="{init()}"><br /><mx:Script><br /><!--[CDATA[<br />import com.shine.framework.mail.util.MailUtil;<br />import com.shine.framework.mail.util.Mail;<br /> import com.shine.framework.mail.util.Base64;<br /> import mx.controls.Alert; </p><p> private var xmlSocket:Socket;<br /> private var m:MailUtil; </p><p> private function init():void<br /> {<br /> m = new MailUtil("smtp.163.com");<br /> } </p><p> public function login():void<br /> {<br /> m.Send("arjick@163.com","password","arjick@163.com","348700730@qq.com","測試4","測試");<br /> }<br />]]--><br /></mx:Script><br /><mx:VBox width="100%"><br /><mx:Button id="testEmail" label="測試" click="{login()}" /><br /></mx:VBox><br /></mx:Application> 

 

這個類發送還有有錯誤,安全性原則問題和容錯問題

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.