Skip to content

Instantly share code, notes, and snippets.

@dmachi
Created June 2, 2010 19:56
Show Gist options
  • Save dmachi/422895 to your computer and use it in GitHub Desktop.
Save dmachi/422895 to your computer and use it in GitHub Desktop.
Class({
id: "MailingList",
properties: {
name: {optional: true},
mboxFileName: {optional: true}
},
prototype: {
getMailFolder: function(){
this.messages =[];
var mboxPath = "mstor:/path/to/mbox";
var mboxFolder = "dojo-interest.mbox";
console.log("Import ", mboxPath, mboxFolder);
var props = new java.util.Properties();
var session = javax.mail.Session.getDefaultInstance(props);
var store = session.getStore(new javax.mail.URLName(mboxPath));
store.connect();
console.log("Store Connected: ", store.isConnected());
var folder = store.getFolder(mboxFolder);
folder.open(javax.mail.Folder.READ_ONLY);
var messageArray=[];
if (folder.exists() && folder.isOpen()){
console.log("Folder opened with ", folder.getMessageCount(), " Messages");
}
return folder;
},
importMessages: function(){
this.messages =[];
var user='qna';
var host='localhost';
var pass='password';
mboxFolder="INBOX/dojo-interest";
var props = new java.util.Properties();
var session = javax.mail.Session.getDefaultInstance(props);
var store = session.getStore("imap");
store.connect(host,user,pass);
console.log("Store Connected: ", store.isConnected());
var folder = store.getFolder(mboxFolder);
var messageArray=[];
if (folder.exists()){
folder.open(javax.mail.Folder.READ_ONLY);
if (folder.isOpen()){
var messageCount = folder.getMessageCount();
//var messageCount = 10;
for(var i=1; i<=messageCount; i++){
var message = folder.getMessage(i);
var msg = {
content: message.getContent(),
};
var goodHeaders=['subject','received', 'return-path', 'x-original-to','delivered-to', 'date', 'from', 'to', 'in-reply-to', 'content-type', 'message-id', 'subject', 'x-mailman-version','precedence', 'reply-to', 'list-id', 'list-unsubscribe', 'list-archive', 'list-post', 'list-help', 'list-subscribe','sender','errors-to','x-spam'];
var headers = message.getAllHeaders();
while(headers.hasMoreElements()){
var h=headers.nextElement();
var name = h.getName().toLowerCase();
if (goodHeaders.lastIndexOf(name)>0){
console.log("Header: ", name);
if (name=="message-id"){name="id";}
msg[name]=h.getValue();
}
}
messageArray.push(msg);
console.log("Subject: ", message.getSubject());
}
}
}
return messageArray;
}
}
});
/*
['subject','received', 'return-path', 'x-original-to','delivered-to', 'date', 'from', 'to', 'in-reply-to', 'content-type', 'message-id', 'subject', 'x-mailman-version','precedence', 'reply-to', 'list-id', 'list-unsubscribe', 'list-archive', 'list-post', 'list-help', 'list-subscribe','sender','errors-to','x-spam'];*/
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment