Отправка электронной почты и вложений с Adobe Flash и Action Script 3.0 - PullRequest
0 голосов
/ 15 ноября 2010

Я пытаюсь использовать некоторый исходный код для отправки электронной почты с Adobe Flash и Action Script 3.0, которые я получил из Интернета ... здесь я хочу отправить электронную почту с вложением ... но он все еще использует Adobe Air в качестве игрока ... и сейчас я хочу использовать его flash player 10 .. поэтому я не могу использовать flash.filesystem, предоставляемую библиотекой air .. и знаю, как это изменить, если я использую flashplayer 10 в качестве игрока ... и как мой код становится ??? любое тело может помочь ????

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

/ * Для авиационной библиотеки * /

import flash.filesystem.FileStream;
import flash.filesystem.File;




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

var myMailer:SMTPMailer = new SMTPMailer ("smtp.mail.yahoo.com", 25);
var fileRef:FileReference; 

// 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
send_btn.addEventListener (MouseEvent.CLICK, onClick);

function onClick ( pEvt:MouseEvent )

{
/*How to change this attachment by using adobe flash player library code and action script 3.0, not adobe air player library ?????? */

/ * изменить отсюда ........... .......... * /

 var attachmentFile:File=File.documentsDirectory;
 attachmentFile = attachmentFile.resolvePath("file/Questions.xml");
 var stream:FileStream = new FileStream();*/
 var myCapStream:ByteArray = myEncoder.encode ( fileRef );
 stream.open(attachmentFile,FileMode.READ);
 stream.readBytes(myCapStream,0,stream.bytesAvailable);
 stream.close();

/ * пока здесь .......................... * /

myMailer.authenticate ( "x@yahoo.com", "хххх"); myMailer.sendAttachedMail ("x@yahoo.com", "y@gmail.com", "test", "test body", myCapStream,);

}

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 = "Notification :\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;

}

1 Ответ

0 голосов
/ 15 ноября 2010

Приложение Flash не может считывать файл с диска (без вывода сообщений) и использовать сеть для отправки электронной почты.Вы должны загрузить файл с FileReference , получить от него ByteArray (не совсем уверен, если это возможно, попробуйте поэкспериментировать) и передать его в myCapStream.

...