home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 35 Internet / 35-Internet.zip / mozil06.zip / bin / chrome / messenger.jar / content / messenger / popTest.js < prev    next >
Text File  |  2001-02-14  |  14KB  |  424 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. //POP 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 == 'parp4')  {
  37.             dump("Account parp4 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("parp4", "parp.mcom.com", "pop3");
  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 = "parp4";
  56.         server.hostName = "parp.mcom.com";
  57.         server.username = "parp4";
  58.         server.password = "parp4";
  59.  
  60.         identity.identityName = "parp4";
  61.         identity.fullName = "parp4";
  62.         identity.email = "parp4@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("POP 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 == 'parp4')  {
  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 == 'parp4')  {
  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.  
  237.                     for (var k=0; k<messages.length; k++) {
  238.                         if (messages[k].subject == time) {
  239.                             dump(k + " subject = " + messages[k].subject + "\n");
  240.                             dump(k + " Recepients = " + messages[k].recipients + "\n");
  241.                             supportsarray.AppendElement(messages[k]);
  242.                             dump("Added to Array \n");
  243.                             dsubfolders[i].deleteMessages(supportsarray, msgwindow, true, false);
  244.                             flag = 1;
  245.                         } //if
  246.                     }  //for
  247.  
  248.                 } //if
  249.  
  250.             }  //for
  251.  
  252.         }  //if
  253.  
  254.         } //for
  255.         if (flag == 1) {
  256.             rv += "DeleteMsg:" + "\t" + "Passed" + "\n";
  257.             dump("Writing Passed to file for DeleteMsg...\n");
  258.             //document.write("<br>" + "deleteMsg: " + "\t" + "Passed" + "\n");
  259.         }
  260.  
  261.         else {
  262.             rv += "DeleteMsg:" + "\t" + "Failed" + "\n";
  263.             dump("Writing Failed to file for DeleteMsg...\n");
  264.             //document.write("<br>" + "deleteMsg: " + "\t" + "Failed" + "\n");
  265.             if (final_result == "Passed")
  266.                 final_result = "Failed";
  267.         }
  268.  
  269.  
  270.     }  // try
  271.     catch (e) {
  272.         dump("E = " + e + "\n");
  273.     }
  274. } //fn
  275.  
  276.  
  277.  
  278. function getTimeStamp() {
  279.     var day="";
  280.     var month="";
  281.     var myweekday="";
  282.     var year="";
  283.     var newdate = new Date();
  284.     var mydate = new Date();
  285.     var dston =  new Date('April 4, 1999 2:59:59');
  286.     var dstoff = new Date('october 31, 1999 2:59:59');
  287.     var myzone = newdate.getTimezoneOffset();
  288.     var newtime = newdate.getTime();
  289.     var zonea;
  290.     var dst;
  291.     var newtimea;
  292.     var myday;
  293.     var mymonth;
  294.     var myminutes;
  295.     var myyear;
  296.     var myhours;
  297.     var mytime;
  298.     var weekday;
  299.     var yhours;
  300.     var mm;
  301.  
  302.     var zone = 8; 
  303. //  references your time zone
  304.     if((newdate > dston) && (newdate < dstoff))
  305.     {
  306.         zonea = zone - 1 ;
  307.         dst = "  Pacific Daylight Savings Time";
  308.     }
  309.     else {
  310.         zonea = zone ; 
  311.         dst = "  Pacific Standard Time";
  312.     }
  313.  
  314.     var newzone = (zonea*60*60*1000);
  315.     newtimea = newtime+(myzone*60*1000)-newzone;
  316.     mydate.setTime(newtimea);
  317.     myday = mydate.getDay();
  318.     mymonth = mydate.getMonth();
  319.     myweekday= mydate.getDate();
  320.     weekday= myweekday;
  321.     var myyear= mydate.getYear();
  322.     year = myyear;
  323.     if (year <= 2000)    // Y2K Fix, Isaac Powell
  324.         year = year + 1900; // http://onyx.idbsu.edu/~ipowell
  325.     yhours = mydate.getHours();
  326.     if (yhours > 12) {
  327.         myhours = yhours - 12 ; mm = " PM";
  328.     }
  329.     else {
  330.         myhours = yhours; mm = " AM";
  331.     }
  332.     myminutes = mydate.getMinutes();
  333.     if (myminutes < 10){
  334.         mytime = ":0" + myminutes;
  335.     }
  336.     else {
  337.         mytime = ":" + myminutes;
  338.     };
  339.  
  340.     var arday = new Array("Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday")
  341.     var armonth = new Array("January ","February ","March ","April ","May ","June ","July ","August ","September ", "October ","November ","December ")
  342.     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");
  343.     // rename locale as needed.
  344.  
  345.     time = ("In Mountain View, CA, it is: " + myhours + mytime+ mm + ", " + arday[myday] +", " + armonth[mymonth] +" "+ardate[myweekday] + ", " + year+", " + dst +".");
  346.     return time;
  347. }
  348.  
  349. function sendMessage()
  350.  
  351. {
  352.     netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead"); 
  353.     netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); 
  354.     try {
  355.     var msgComposeService = Components.classes["@mozilla.org/messengercompose;1"].getService();
  356.     msgComposeService = msgComposeService.QueryInterface(Components.interfaces.nsIMsgComposeService);
  357.  
  358. //    var msgCompose = null;
  359.  
  360. //    var MAX_RECIPIENTS = 0;
  361.  
  362. //    var numAttachments = 0;
  363.  
  364. //    var currentAttachment = null;
  365.  
  366. //    var other_header = "";
  367.  
  368. //    var update_compose_title_as_you_type = true;
  369.  
  370.     dump("IDENTITY = " + identity + "\n");
  371.     var mycompose = msgComposeService.InitCompose(window, null, 0, 0, null,identity);
  372.     mycompose.compFields.SetFrom(identity.email);
  373.     mycompose.compFields.SetTo(identity.email);
  374.     time = getTimeStamp();
  375.     mycompose.compFields.SetSubject(time);
  376.     mycompose.compFields.SetCharacterSet("ISO-8859-1");
  377.     mycompose.compFields.SetBody("This is the body\n");
  378.     mycompose.SendMsg(0, identity, null);
  379.     dump("MSG SENT \n");
  380.     dump("TIME = " + time + "\n");
  381.     }  //try
  382.     catch (e) {
  383.         dump("E = " + e + "\n");
  384.     }
  385. }
  386.  
  387. function nsISupportsArray2JSArray(array, IID) {
  388.     var result = new Array;
  389.     var length = array.Count();
  390.     for (var i=0; i<length; i++) {
  391.       result[i] = array.GetElementAt(i).QueryInterface(IID);
  392.     }
  393.     return result;
  394. }
  395.  
  396. function nsIEnumerator2JSArray(enumerator, iface) {
  397.      var array = new Array;
  398.      var i=0;
  399.      var done = false;
  400.      while (!done) {
  401.          var element = enumerator.currentItem();
  402.          array[i] = element.QueryInterface(iface);
  403.          try {
  404.             enumerator.next();
  405.          } catch (ex) {
  406.               done=true;
  407.            }
  408.                 i++;
  409.      }
  410.      return array;
  411. }
  412.  
  413. function nsISimpleEnumerator2JSArray(enumerator, iface) {
  414.     var array = new Array;
  415.     var i=0;
  416.     while (enumerator.hasMoreElements()) {
  417.        var element = enumerator.getNext();
  418.        array[i] = element.QueryInterface(iface);
  419.        i++;
  420.     }
  421.  
  422.     return array;
  423. }
  424.