One possible (simple) solution is to use SharedObject
:
public void cacheIncomingMail(message:EmailMessage):void {
var so:SharedObject = SharedObject.getLocal("mobileMail");
var cachedMessages:Array = so.data.messages;
//Decide whether to remove anything from the array
cachedMessages.push(message);
so.data.messages = cachedMessages;
}
Be aware that this solution can dump a LOT of data into the SharedObject; Adobe's documentation suggests that you use SharedObject
for "limited amounts of data"
An alternative is to use the File
class:
public void cacheIncomingMail(message:EmailMessage):void {
var dataFolder:File = File.applicationStorageDirectory;
var desiredFilename:String = makeFilenameFromEmail(message);
var mailStorageFile:File = dataFolder.resolvePath(desiredFilename);
var fileStream:FileStream = new FileStream();
fileStream.open(file, FileMode.WRITE);
fileStream.writeUTF(message.toXML());
fileStream.close();
}