2012-06-27 48 views
0

我有一個Flash項目,要添加的設施是,從閃存(.swf/.exe)發送電子郵件而不重定向。只提供發件人的電子郵件ID,點擊後,表格應發送電子郵件。 我爲此搜索了很多,php解決方案給出了,我無法工作可能是因爲指導級別較低。從Flash郵件(使用Actionscript 3.0)

回答

0

使用純ActionScript SMTP mailer,如:包含在ZIP內

http://www.bytearray.org/wp-content/projects/smtpmailer/SMTPMailer%200.6.zip

圖書館和FLA例子。

實施例實現:

mailer

import org.smtp.mailer.SMTPMailer; 
import org.smtp.encoding.JPEGEncoder; 
import org.smtp.encoding.PNGEnc; 
import org.smtp.events.SMTPEvent; 
import flash.utils.ByteArray; 
import flash.display.BitmapData; 
import flash.display.Bitmap; 
import flash.events.*; 

// create the socket connection to any SMTP socket 
// use your ISP SMTP 

var myMailer:SMTPMailer = new SMTPMailer (smtp_txt.text, 25); 

// register events 
// event dispatched when mail is successfully sent 
myMailer.addEventListener(SMTPEvent.MAIL_SENT, onMailSent); 
// event dispatched when mail could not be sent 
myMailer.addEventListener(SMTPEvent.MAIL_ERROR, onMailError); 
// event dispatched when SMTPMailer successfully connected to the SMTP server 
myMailer.addEventListener(SMTPEvent.CONNECTED, onConnected); 
// event dispatched when SMTP server disconnected the client for different reasons 
myMailer.addEventListener(SMTPEvent.DISCONNECTED, onDisconnected); 
// event dispatched when the client has authenticated successfully 
myMailer.addEventListener(SMTPEvent.AUTHENTICATED, onAuthSuccess); 
// event dispatched when the client could not authenticate 
myMailer.addEventListener(SMTPEvent.BAD_SEQUENCE, onAuthFailed); 

// take the snapshot 
var myBitmap:BitmapData = new BitmapData (stage.stageWidth, stage.stageHeight); 

// encode as JPEG with quality 100 
var myEncoder = new JPEGEncoder(100); 

send_btn.addEventListener (MouseEvent.CLICK, onClick); 

message_txt.text = "<img src='http://www.google.com/images/logo_sm.gif'</img><br><b>Picture file attached!</b>"; 

function onClick (pEvt:MouseEvent) 
{ 
    // replace this by any DisplayObject 
    myBitmap.draw (this); 

    var myCapStream:ByteArray = myEncoder.encode (myBitmap); 

    // sends HTML email 
    //myMailer.sendHTMLMail (from_txt.text, to_txt.text, subject_txt.text, "<img src='http://www.google.com/images/logo_sm.gif'</img><br><b>Picture from HTML :)</b>"); 

    // send HTML email with picture file attached 
    myMailer.sendAttachedMail (from_txt.text, to_txt.text, subject_txt.text, message_txt.text, myCapStream, "image.jpg"); 
} 

function onAuthFailed (pEvt:SMTPEvent):void 
{ 
    status_txt.htmlText = "Authentication Error"; 
} 

function onAuthSuccess (pEvt:SMTPEvent):void 
{ 
    status_txt.htmlText = "Authentication OK !"; 
} 

function onConnected (pEvt:SMTPEvent):void 
{ 
    status_txt.htmlText = "Connected : \n\n" + pEvt.result.message; 
    status_txt.htmlText += "Code : \n\n" + pEvt.result.code; 
} 

function onMailSent (pEvt:SMTPEvent) 
{ 
    // when data available, read it 
    status_txt.htmlText = "Mail sent :\n\n" + pEvt.result.message; 
    status_txt.htmlText += "Code : \n\n" + pEvt.result.code; 
} 

function onMailError (pEvt:SMTPEvent):void 
{ 
    status_txt.htmlText = "Error :\n\n" + pEvt.result.message; 
    status_txt.htmlText += "Code : \n\n" + pEvt.result.code; 
} 

function onDisconnected (pEvt:SMTPEvent):void 
{ 
    status_txt.htmlText = "User disconnected :\n\n" + pEvt.result.message; 
    status_txt.htmlText += "Code : \n\n" + pEvt.result.code; 
} 

function socketErrorHandler (pEvt:IOErrorEvent) 
{ 
    // when data available, read it 
    status_txt.htmlText = "Connection error !"; 
} 
+0

整潔。當然,這需要訪問相當開放的SMTP服務器。大多數(isp)SMTP服務器是否會限制基於IP的使用或需要以其他方式進行身份驗證(並且認證信息,如用戶名/密碼不是您想要放入Flash文件中的內容)? –

+0

好點。 SMTP服務器有一些免費選項,但我不知道術語/合法性。我認爲Rackspace每月提供3美元的SMTP。這些類支持SSL,但我不確定哪些加密優勢。 –

相關問題