0
我有一個Flash項目,要添加的設施是,從閃存(.swf/.exe)發送電子郵件而不重定向。只提供發件人的電子郵件ID,點擊後,表格應發送電子郵件。 我爲此搜索了很多,php解決方案給出了,我無法工作可能是因爲指導級別較低。從Flash郵件(使用Actionscript 3.0)
我有一個Flash項目,要添加的設施是,從閃存(.swf/.exe)發送電子郵件而不重定向。只提供發件人的電子郵件ID,點擊後,表格應發送電子郵件。 我爲此搜索了很多,php解決方案給出了,我無法工作可能是因爲指導級別較低。從Flash郵件(使用Actionscript 3.0)
使用純ActionScript SMTP mailer,如:包含在ZIP內
http://www.bytearray.org/wp-content/projects/smtpmailer/SMTPMailer%200.6.zip
圖書館和FLA例子。
實施例實現:
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 !";
}
整潔。當然,這需要訪問相當開放的SMTP服務器。大多數(isp)SMTP服務器是否會限制基於IP的使用或需要以其他方式進行身份驗證(並且認證信息,如用戶名/密碼不是您想要放入Flash文件中的內容)? –
好點。 SMTP服務器有一些免費選項,但我不知道術語/合法性。我認爲Rackspace每月提供3美元的SMTP。這些類支持SSL,但我不確定哪些加密優勢。 –