Guest User

Untitled

a guest
Oct 15th, 2018
246
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.82 KB | None | 0 0
  1. import java.util.Vector;
  2.  
  3. import Mail.*;
  4. public class NUSA
  5. {
  6. public static void main(String []args){
  7. //System.out.println( deceived_DHT("aA") );
  8. if(login("a5","a2"))
  9. System.out.println("成功");
  10. else
  11. System.out.println("失敗");
  12. System.out.println("程式結束");
  13. }
  14.  
  15. public static int deceived_DHT (String input){
  16. //把input.第二個字元的ASCII碼mod3 當作結果
  17. int output = input.charAt(1);
  18. System.out.println("*** in deceived_DHT ***");
  19. System.out.println("deceived_DHT(" + input + ")=" + output + ", mod 3 = " + output%3);
  20. output = output % 3;
  21. return output;
  22. }
  23. public static boolean register(String Wanted_Account , String Wanted_Passwd){
  24. /*檢查帳號有無重覆 ->把帳號拿去做DHT,得到一個account_server,
  25. * 看該account_server有沒有Wanted_Account_dir.xml這個檔案
  26. * 若已存在,傳回false
  27. * 若不存在,建立xml檔。方式:寄信到account_server ,主旨:Wanted_Account_dir.xml
  28. */
  29. System.out.println("*** in register ***");
  30. int account_server = deceived_DHT(Wanted_Account);
  31. if(account_server == 0){
  32. /*為dropbox
  33. *檢查 nctunusa2011@gmail.com的dropbox空間,有沒有Wanted_Account_dir.xml這個檔案
  34. */
  35. }
  36. else if(account_server == 1){
  37. /*為gmail
  38. *收信,看信件標題有沒有Wanted_Account_dir.xml這個檔案
  39. */
  40. int FoundMessage = -1;
  41.  
  42. System.out.println("檢查有無主旨為\"" + Wanted_Account +"_dir.xml" +"\"的信件");
  43. FoundMessage = MailHandler.findSubject(
  44. MailHandler.Gmail_Imap_Server,
  45. MailHandler.Gmail_User_Account,
  46. MailHandler.Gmail_Password,
  47. Wanted_Account +"_dir.xml"
  48. );
  49.  
  50. if(FoundMessage > -1){ //這個Wanted_Account有人用過了!
  51. System.out.println("有找到");
  52. return false;
  53. }
  54. System.out.println("沒找到。發送信件...");
  55. //建立空的dir.xml (寄一邽標題為Wanted_Account_dir.xml的信)
  56. String subject = Wanted_Account +"_dir.xml";
  57. String content = "";
  58. MailHandler.sendMail("nctunusa2011@gmail.com", subject, content);
  59. }
  60. else if(account_server == 2){
  61. /*為Hotmail
  62. *收信,看信件標題有沒有Wanted_Account_dir.xml這個檔案
  63. */
  64. int FoundMessage = -1;
  65. System.out.println("檢查有無主旨為\"" + Wanted_Account +"_dir.xml" +"\"的信件");
  66. FoundMessage = MailHandler.findSubject(
  67. MailHandler.Hotmail_Pop3_Server,
  68. MailHandler.Hotmail_User_Account,
  69. MailHandler.Hotmail_Password,
  70. Wanted_Account +"_dir.xml"
  71. );
  72.  
  73. if(FoundMessage > -1){ //這個Wanted_Account有人用過了!
  74. System.out.println("有找到");
  75. return false;
  76. }
  77. System.out.println("沒找到。發送信件...");
  78. //建立空的dir.xml (寄一邽標題為Wanted_Account_dir.xml的信)
  79. String subject = Wanted_Account +"_dir.xml";
  80. String content = "";
  81. MailHandler.sendMail("nctunusa2011@hotmail.com", subject, content);
  82. }
  83. else{
  84. System.out.println("***** in register *****");
  85. System.out.println("出現例外");
  86. }
  87. System.out.println("註冊成功");
  88. return true;
  89. }
  90.  
  91. public static String [][] connect_seed_server (){
  92. /*傳回一個二維陣列,記錄現在有的account_server
  93. * 直接用String [][]感覺有點弱弱的哈哈,有空再改吧!
  94. */
  95. String [][]account_server_table={
  96. {"nctunusa2011@gmail.com","nctunusa"}, //dropbox
  97. {"nctunusa2011@gmail.com","nctunusa"}, //gmail
  98. {"nctunusa2011@hotmail.com","nctunusa"} //hotmail
  99. };
  100.  
  101. return account_server_table;
  102. }
  103. public static boolean login(String Account, String passwd){
  104. //把seed server的內容抓進來account_server_table
  105. String [][]account_table = connect_seed_server();
  106.  
  107. //把Account拿去做DHT,算出該Account的dir.xml放在哪一個account_server
  108. //account_server_number= 0或1或2,目前只能處理1(gmail)或2(hotmail)
  109. int account_number = deceived_DHT(Account);
  110.  
  111. String server = "";
  112. if(account_number == 1)
  113. server = "imap.gmail.com"; //getContentOfSubject需要適當的server,所以需要此if-else。
  114. else if(account_number == 2)
  115. server = "pop3.live.com";
  116. else //account_server_number ==0
  117. server = "error";
  118.  
  119. String dir_xml = MailHandler.getContentOfSubject(server,account_table[account_number][0],account_table[account_number][1],Account+"_dir.xml");
  120.  
  121. if(dir_xml.equals("-1") ){
  122. System.out.println("帳號或密碼錯誤!");
  123. System.out.println("在account_server中找不到"+Account+"_dir.xml"+"的主旨");
  124. System.out.println("登入失敗");
  125. return false;
  126. }
  127.  
  128. System.out.println("登入成功");
  129. System.out.println("使用者的目錄檔案內容如下:");
  130. System.out.println("***********************");
  131. System.out.println(dir_xml);
  132. System.out.println("***********************");
  133. return true;
  134.  
  135. }
  136. }
Add Comment
Please, Sign In to add comment