home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 35 Internet / 35-Internet.zip / mozil06.zip / bin / chrome / messenger.jar / content / messenger / imapTest.js < prev    next >
Text File  |  2001-02-14  |  14KB  |  425 lines

  1. netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
  2. var accountManager = Components.classes["@mozilla.org/messenger/account-manager;1"].getService(Components.interfaces.nsIMsgAccountManager);
  3. dump("AM = " + accountManager + "\n");
  4. netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
  5. var smtpservice = Components.classes["@mozilla.org/messengercompose/smtp;1"].getService(Components.interfaces.nsISmtpService);
  6. dump("SMTPSERVICE =    " + smtpservice + "\n");
  7. smtpserver = smtpservice.defaultServer;
  8. smtpserver.hostname = "parp.mcom.com";
  9. dump("SMTPSERVER CREATED \n");
  10.  
  11. var msgwindow = Components.classes["@mozilla.org/messenger/msgwindow;1"].getService(Components.interfaces.nsIMsgWindow);
  12. var identity;
  13. var subfolders;
  14. var accountKey;
  15. var server;
  16. var time;
  17. var rv = "";
  18. var final_result = "Passed";
  19. var createAccountResult;  //to store whether createAccount passed or not
  20.  
  21. var urlListener = {
  22.     OnStartRunningUrl: function  (aUrl) {
  23.         },
  24.     OnStopRunningUrl: function (aUrl, aExitCode) {
  25.         }
  26.     };
  27.  
  28. function createAccount() {
  29.  
  30. netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
  31. //IMAP Account
  32. try { 
  33.     dump("********Now we have " + accountManager.accounts.Count() + " accounts\n");
  34.     for (var j=0; j<accountManager.allServers.Count(); j++) {
  35.         var tserver = accountManager.allServers.GetElementAt(j).QueryInterface(Components.interfaces.nsIMsgIncomingServer);
  36.         if (tserver.username == 'parp3')  {
  37.             dump("Account parp3 already exists.. Using the existing account...\n");
  38.             var account_exists = 1;
  39.         }
  40.     }
  41.  
  42.     if (account_exists != 1) {
  43.         var old_count = accountManager.accounts.Count();
  44.         var account = accountManager.createAccount();
  45.         accountKey = account.key;
  46.         dump("NEW KEY = " + accountKey + "\n");
  47.         identity = accountManager.createIdentity();
  48.         server = accountManager.createIncomingServer("parp3", "parp.mcom.com", "imap");
  49.         server.rememberPassword = true;
  50.         account.addIdentity(identity);
  51.         account.incomingServer = server;
  52.         dump("Created identity " + identity + "\n");
  53.         dump("Created server " + server + "\n");
  54.  
  55.         server.prettyName = "parp3";
  56.         server.hostName = "parp.mcom.com";
  57.         server.username = "parp3";
  58.         server.password = "parp3";
  59.  
  60.         identity.identityName = "parp3";
  61.         identity.fullName = "parp3";
  62.         identity.email = "parp3@parp.mcom.com";
  63.  
  64.         dump("********Now we have " + accountManager.accounts.Count() + " accounts\n");
  65.         var new_count = accountManager.accounts.Count();
  66.         if (new_count == old_count + 1) {
  67.             dump("Sucessfully created an Account\n");
  68.             createAccountResult = "Passed";
  69.             rv += "createAccount:" + "\t" + "Passed" + "\n";
  70.         }
  71.  
  72.         else {
  73.             dump("Failed to create an account \n");
  74.             createAccountResult = "Failed";
  75.             rv += "createAccount:" + "\t" + "Failed" + "\n";
  76.             if (final_result == "Passed")
  77.                 final_result = "Failed";
  78.         }
  79.     } //if
  80.  
  81.     } //try
  82.     catch (e) {
  83.         dump("E = " + e + "\n");
  84.     }
  85.  
  86.  
  87.  
  88. // local folder 
  89.     var messengerMigrator = Components.classes["@mozilla.org/messenger/migrator;1"].getService(Components.interfaces.nsIMessengerMigrator);
  90.     messengerMigrator.createLocalMailAccount(false);
  91.     dump("Created local mail account \n");
  92. }
  93.  
  94. function removeAccount() {
  95. netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
  96. try { 
  97.     dump("********Now we have " + accountManager.accounts.Count() + " accounts\n");
  98.     var old_count = accountManager.accounts.Count();
  99.     if(old_count == 0) {
  100.         dump("NO Accounts Found..\n");
  101.         rv += "removeAccount:" + "\t" + "Failed" + "\n";
  102.         dump("Writing Failed to file for removeAccount...\n");
  103.         if (final_result == "Passed")
  104.             final_result = "Failed";
  105.     }
  106.     else {
  107.         var accounts = accountManager.accounts;
  108.         var JSAccounts = nsISupportsArray2JSArray(accounts, Components.interfaces.nsIMsgAccount);
  109.         for (var i=0; i<JSAccounts.length; i++) {
  110.             if(JSAccounts[i].key == accountKey) {
  111.                 accountManager.removeAccount(JSAccounts[i]);
  112.             }
  113.         }  //for
  114.  
  115.         var    new_count = accountManager.accounts.Count();
  116.         if (new_count == old_count - 1) {
  117.             dump("Sucessfully Deleted an Account\n");
  118.             rv += "removeAccount:" + "\t" + "Passed" + "\n";
  119.             dump("Writing Passed to file for RemoveAccount...\n");
  120.         } 
  121.         else {
  122.             rv += "removeAccount:" + "\t" + "Failed" + "\n";
  123.             dump("Writing Failed to file for removeAccount...\n");
  124.             if (final_result == "Passed")
  125.                 final_result = "Failed";
  126.         } //else
  127.  
  128.     } //else
  129.  
  130.     // to remove local folder
  131.      dump("******** Now we have " + accountManager.accounts.Count() + " accounts\n");
  132.     for (var j=0; j<accountManager.allServers.Count(); j++) { 
  133.            var server=accountManager.allServers.GetElementAt(j).QueryInterface(Components.interfaces.nsIMsgIncomingServer);      
  134.         if (server.type == 'none')  { 
  135.             dump("server key is " + server.key + "\n");
  136.             var localAccount = accountManager.FindAccountForServer(server);
  137.             dump("LOCAL ACCOUNT = " + localAccount + "\n");
  138.             if (localAccount) {
  139.                 accountManager.removeAccount(localAccount);
  140.                 dump("Deleted Local Account....\n");
  141.             }
  142.          }  //if
  143.  
  144.     } //for
  145.  
  146.      dump("******** Now we have " + accountManager.accounts.Count() + " accounts\n");
  147.     } //try 
  148.  
  149.     catch (e) { 
  150.     dump("E = " + e + "\n"); 
  151.     } 
  152.  
  153.     dump("RV: " + rv + "\n");
  154.     dump("IMAP MAILNEWS TEST: " + final_result + "\n");
  155. }
  156.  
  157.  
  158.  
  159. function updateFolder() {
  160.  
  161.         netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
  162.         try {
  163.         dump(" Server Count = " + accountManager.allServers.Count() + "\n");
  164.         for (var j=0; j < accountManager.allServers.Count(); j++) {
  165.         var server = accountManager.allServers.GetElementAt(j).QueryInterface(Components.interfaces.nsIMsgIncomingServer);
  166.         if (server.username == 'parp3')  {
  167.             var rootFolder = server.RootFolder;
  168.             dump("rootfolder = " + rootFolder + "\n");
  169.             var subFolderEnumerator = rootFolder.GetSubFolders();
  170.             // dump("subFolderEnumerator = " + subFolderEnumerator + "\n");
  171.             subfolders = nsIEnumerator2JSArray(subFolderEnumerator, Components.interfaces.nsIMsgFolder);
  172.             // dump("SUBFOLDER = " + subfolders + "\n");
  173.             for (var i=0; i<subfolders.length; i++) {
  174.                 if((subfolders[i].name == 'Inbox') || (subfolders[i].name == 'INBOX')) {
  175.                     var resource = subfolders[i].QueryInterface(Components.interfaces.nsIRDFResource);
  176.                     dump("resource uri = " + resource.Value + "\n");
  177.                     subfolders[i].updateFolder(msgwindow);
  178.                     dump("Updated the folder!! \n");
  179.                     var messages_enumerator = subfolders[i].getMessages(msgwindow); 
  180.  
  181.                 } //if
  182.  
  183.             }  //for
  184.  
  185.         }  //if
  186.  
  187.         } //for
  188.     
  189. } //try 
  190.  
  191.         catch (e) { 
  192.              dump("E = " + e + "\n"); 
  193.          } 
  194.  
  195. }
  196.  
  197.  
  198. function getNewMail()
  199. {
  200.     netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead"); 
  201.     netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); 
  202.     try {
  203.     var instanceofpop3service =Components.classes['@mozilla.org/messenger/popservice;1'].getService();
  204.     var interfaceofpop3service =instanceofpop3service.QueryInterface(Components.interfaces.nsIPop3Service); 
  205.     dump("interfaceofpop3service = " + interfaceofpop3service +"\n");
  206.       var popserver =server.QueryInterface(Components.interfaces.nsIPop3IncomingServer);   
  207.     dump("popserver = " + popserver + "\n");  
  208.     interfaceofpop3service.GetNewMail(msgwindow, urlListener, popserver);  
  209.     }  //try
  210.     catch (e) {
  211.         dump(" E = " + e + "\n");
  212.     }
  213. }
  214.  
  215. function deleteMessage() {
  216.     var flag = 0;
  217.     netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
  218.     try {
  219.         var supportsarray =Components.classes["@mozilla.org/supports-array;1"].getService(Components.interfaces.nsISupportsArray);
  220.          dump("ARRAY = " + supportsarray + "\n");
  221.          netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
  222.          dump("MSGWINDOW = " + msgwindow + "\n");
  223.         for (var j=0; j<accountManager.allServers.Count(); j++) {
  224.         var server = accountManager.allServers.GetElementAt(j).QueryInterface(Components.interfaces.nsIMsgIncomingServer);
  225.         if (server.username == 'parp3')  {
  226.             var rootFolder = server.RootFolder;
  227.             dump("RootFolder = " + rootFolder + "\n");
  228.             var subFolderEnumerator = rootFolder.GetSubFolders();
  229.             var dsubfolders = nsIEnumerator2JSArray(subFolderEnumerator, Components.interfaces.nsIMsgFolder);
  230.             for (var i=0; i<dsubfolders.length; i++) {
  231.                 if((dsubfolders[i].name == 'Inbox') || (dsubfolders[i].name == 'INBOX')) {
  232.                     var resource = dsubfolders[i].QueryInterface(Components.interfaces.nsIRDFResource);
  233.                     dump("resource uri = " + resource.Value + "\n");
  234.                     var messages_enumerator = dsubfolders[i].getMessages(msgwindow);
  235.                     var messages = nsISimpleEnumerator2JSArray(messages_enumerator, Components.interfaces.nsIMessage);
  236.                     dump("# Messages = " + messages.length + "\n");
  237.  
  238.                     for (var k=0; k<messages.length; k++) {
  239.                         if (messages[k].subject == time) {
  240.                             dump(k + " subject = " + messages[k].subject + "\n");
  241.                             dump(k + " Recepients = " + messages[k].recipients + "\n");
  242.                             supportsarray.AppendElement(messages[k]);
  243.                             dump("Added to Array \n");
  244.                             dsubfolders[i].deleteMessages(supportsarray, msgwindow, true, false);
  245.                             flag = 1;
  246.                         } //if
  247.                     }  //for
  248.  
  249.                 } //if
  250.  
  251.             }  //for
  252.  
  253.         }  //if
  254.  
  255.         } //for
  256.         if (flag == 1) {
  257.             rv += "DeleteMsg:" + "\t" + "Passed" + "\n";
  258.             dump("Writing Passed to file for DeleteMsg...\n");
  259.             //document.write("<br>" + "deleteMsg: " + "\t" + "Passed" + "\n");
  260.         }
  261.  
  262.         else {
  263.             rv += "DeleteMsg:" + "\t" + "Failed" + "\n";
  264.             dump("Writing Failed to file for DeleteMsg...\n");
  265.             //document.write("<br>" + "deleteMsg: " + "\t" + "Failed" + "\n");
  266.             if (final_result == "Passed")
  267.                 final_result = "Failed";
  268.         }
  269.  
  270.  
  271.     }  // try
  272.     catch (e) {
  273.         dump("E = " + e + "\n");
  274.     }
  275. } //fn
  276.  
  277.  
  278.  
  279. function getTimeStamp() {
  280.     var day="";
  281.     var month="";
  282.     var myweekday="";
  283.     var year="";
  284.     var newdate = new Date();
  285.     var mydate = new Date();
  286.     var dston =  new Date('April 4, 1999 2:59:59');
  287.     var dstoff = new Date('october 31, 1999 2:59:59');
  288.     var myzone = newdate.getTimezoneOffset();
  289.     var newtime = newdate.getTime();
  290.     var zonea;
  291.     var dst;
  292.     var newtimea;
  293.     var myday;
  294.     var mymonth;
  295.     var myminutes;
  296.     var myyear;
  297.     var myhours;
  298.     var mytime;
  299.     var weekday;
  300.     var yhours;
  301.     var mm;
  302.  
  303.     var zone = 8; 
  304. //  references your time zone
  305.     if((newdate > dston) && (newdate < dstoff))
  306.     {
  307.         zonea = zone - 1 ;
  308.         dst = "  Pacific Daylight Savings Time";
  309.     }
  310.     else {
  311.         zonea = zone ; 
  312.         dst = "  Pacific Standard Time";
  313.     }
  314.  
  315.     var newzone = (zonea*60*60*1000);
  316.     newtimea = newtime+(myzone*60*1000)-newzone;
  317.     mydate.setTime(newtimea);
  318.     myday = mydate.getDay();
  319.     mymonth = mydate.getMonth();
  320.     myweekday= mydate.getDate();
  321.     weekday= myweekday;
  322.     var myyear= mydate.getYear();
  323.     year = myyear;
  324.     if (year <= 2000)    // Y2K Fix, Isaac Powell
  325.         year = year + 1900; // http://onyx.idbsu.edu/~ipowell
  326.     yhours = mydate.getHours();
  327.     if (yhours > 12) {
  328.         myhours = yhours - 12 ; mm = " PM";
  329.     }
  330.     else {
  331.         myhours = yhours; mm = " AM";
  332.     }
  333.     myminutes = mydate.getMinutes();
  334.     if (myminutes < 10){
  335.         mytime = ":0" + myminutes;
  336.     }
  337.     else {
  338.         mytime = ":" + myminutes;
  339.     };
  340.  
  341.     var arday = new Array("Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday")
  342.     var armonth = new Array("January ","February ","March ","April ","May ","June ","July ","August ","September ", "October ","November ","December ")
  343.     var ardate = new Array("0th","1st","2nd","3rd","4th","5th","6th","7th","8th","9th","10th","11th","12th","13th","14th","15th","16th","17th","18th","19th","20th","21st","22nd","23rd","24th","25th","26th","27th","28th","29th","30th","31st");
  344.     // rename locale as needed.
  345.  
  346.     time = ("In Mountain View, CA, it is: " + myhours + mytime+ mm + ", " + arday[myday] +", " + armonth[mymonth] +" "+ardate[myweekday] + ", " + year+", " + dst +".");
  347.     return time;
  348. }
  349.  
  350. function sendMessage()
  351.  
  352. {
  353.     netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead"); 
  354.     netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); 
  355.     try {
  356.     var msgComposeService = Components.classes["@mozilla.org/messengercompose;1"].getService();
  357.     msgComposeService = msgComposeService.QueryInterface(Components.interfaces.nsIMsgComposeService);
  358.  
  359. //    var msgCompose = null;
  360.  
  361. //    var MAX_RECIPIENTS = 0;
  362.  
  363. //    var numAttachments = 0;
  364.  
  365. //    var currentAttachment = null;
  366.  
  367. //    var other_header = "";
  368.  
  369. //    var update_compose_title_as_you_type = true;
  370.  
  371.     dump("IDENTITY = " + identity + "\n");
  372.     var mycompose = msgComposeService.InitCompose(window, null, 0, 0, null,identity);
  373.     mycompose.compFields.SetFrom(identity.email);
  374.     mycompose.compFields.SetTo(identity.email);
  375.     time = getTimeStamp();
  376.     mycompose.compFields.SetSubject(time);
  377.     mycompose.compFields.SetCharacterSet("ISO-8859-1");
  378.     mycompose.compFields.SetBody("This is the body\n");
  379.     mycompose.SendMsg(0, identity, null);
  380.     dump("MSG SENT \n");
  381.     dump("TIME = " + time + "\n");
  382.     }  //try
  383.     catch (e) {
  384.         dump("E = " + e + "\n");
  385.     }
  386. }
  387.  
  388. function nsISupportsArray2JSArray(array, IID) {
  389.     var result = new Array;
  390.     var length = array.Count();
  391.     for (var i=0; i<length; i++) {
  392.       result[i] = array.GetElementAt(i).QueryInterface(IID);
  393.     }
  394.     return result;
  395. }
  396.  
  397. function nsIEnumerator2JSArray(enumerator, iface) {
  398.      var array = new Array;
  399.      var i=0;
  400.      var done = false;
  401.      while (!done) {
  402.          var element = enumerator.currentItem();
  403.          array[i] = element.QueryInterface(iface);
  404.          try {
  405.             enumerator.next();
  406.          } catch (ex) {
  407.               done=true;
  408.            }
  409.                 i++;
  410.      }
  411.      return array;
  412. }
  413.  
  414. function nsISimpleEnumerator2JSArray(enumerator, iface) {
  415.     var array = new Array;
  416.     var i=0;
  417.     while (enumerator.hasMoreElements()) {
  418.        var element = enumerator.getNext();
  419.        array[i] = element.QueryInterface(iface);
  420.        i++;
  421.     }
  422.  
  423.     return array;
  424. }
  425.