Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.Vector;
- import Mail.*;
- public class NUSA
- {
- public static void main(String []args){
- //System.out.println( deceived_DHT("aA") );
- if(login("a5","a2"))
- System.out.println("成功");
- else
- System.out.println("失敗");
- System.out.println("程式結束");
- }
- public static int deceived_DHT (String input){
- //把input.第二個字元的ASCII碼mod3 當作結果
- int output = input.charAt(1);
- System.out.println("*** in deceived_DHT ***");
- System.out.println("deceived_DHT(" + input + ")=" + output + ", mod 3 = " + output%3);
- output = output % 3;
- return output;
- }
- public static boolean register(String Wanted_Account , String Wanted_Passwd){
- /*檢查帳號有無重覆 ->把帳號拿去做DHT,得到一個account_server,
- * 看該account_server有沒有Wanted_Account_dir.xml這個檔案
- * 若已存在,傳回false
- * 若不存在,建立xml檔。方式:寄信到account_server ,主旨:Wanted_Account_dir.xml
- */
- System.out.println("*** in register ***");
- int account_server = deceived_DHT(Wanted_Account);
- if(account_server == 0){
- /*為dropbox
- *檢查 nctunusa2011@gmail.com的dropbox空間,有沒有Wanted_Account_dir.xml這個檔案
- */
- }
- else if(account_server == 1){
- /*為gmail
- *收信,看信件標題有沒有Wanted_Account_dir.xml這個檔案
- */
- int FoundMessage = -1;
- System.out.println("檢查有無主旨為\"" + Wanted_Account +"_dir.xml" +"\"的信件");
- FoundMessage = MailHandler.findSubject(
- MailHandler.Gmail_Imap_Server,
- MailHandler.Gmail_User_Account,
- MailHandler.Gmail_Password,
- Wanted_Account +"_dir.xml"
- );
- if(FoundMessage > -1){ //這個Wanted_Account有人用過了!
- System.out.println("有找到");
- return false;
- }
- System.out.println("沒找到。發送信件...");
- //建立空的dir.xml (寄一邽標題為Wanted_Account_dir.xml的信)
- String subject = Wanted_Account +"_dir.xml";
- String content = "";
- MailHandler.sendMail("nctunusa2011@gmail.com", subject, content);
- }
- else if(account_server == 2){
- /*為Hotmail
- *收信,看信件標題有沒有Wanted_Account_dir.xml這個檔案
- */
- int FoundMessage = -1;
- System.out.println("檢查有無主旨為\"" + Wanted_Account +"_dir.xml" +"\"的信件");
- FoundMessage = MailHandler.findSubject(
- MailHandler.Hotmail_Pop3_Server,
- MailHandler.Hotmail_User_Account,
- MailHandler.Hotmail_Password,
- Wanted_Account +"_dir.xml"
- );
- if(FoundMessage > -1){ //這個Wanted_Account有人用過了!
- System.out.println("有找到");
- return false;
- }
- System.out.println("沒找到。發送信件...");
- //建立空的dir.xml (寄一邽標題為Wanted_Account_dir.xml的信)
- String subject = Wanted_Account +"_dir.xml";
- String content = "";
- MailHandler.sendMail("nctunusa2011@hotmail.com", subject, content);
- }
- else{
- System.out.println("***** in register *****");
- System.out.println("出現例外");
- }
- System.out.println("註冊成功");
- return true;
- }
- public static String [][] connect_seed_server (){
- /*傳回一個二維陣列,記錄現在有的account_server
- * 直接用String [][]感覺有點弱弱的哈哈,有空再改吧!
- */
- String [][]account_server_table={
- {"nctunusa2011@gmail.com","nctunusa"}, //dropbox
- {"nctunusa2011@gmail.com","nctunusa"}, //gmail
- {"nctunusa2011@hotmail.com","nctunusa"} //hotmail
- };
- return account_server_table;
- }
- public static boolean login(String Account, String passwd){
- //把seed server的內容抓進來account_server_table
- String [][]account_table = connect_seed_server();
- //把Account拿去做DHT,算出該Account的dir.xml放在哪一個account_server
- //account_server_number= 0或1或2,目前只能處理1(gmail)或2(hotmail)
- int account_number = deceived_DHT(Account);
- String server = "";
- if(account_number == 1)
- server = "imap.gmail.com"; //getContentOfSubject需要適當的server,所以需要此if-else。
- else if(account_number == 2)
- server = "pop3.live.com";
- else //account_server_number ==0
- server = "error";
- String dir_xml = MailHandler.getContentOfSubject(server,account_table[account_number][0],account_table[account_number][1],Account+"_dir.xml");
- if(dir_xml.equals("-1") ){
- System.out.println("帳號或密碼錯誤!");
- System.out.println("在account_server中找不到"+Account+"_dir.xml"+"的主旨");
- System.out.println("登入失敗");
- return false;
- }
- System.out.println("登入成功");
- System.out.println("使用者的目錄檔案內容如下:");
- System.out.println("***********************");
- System.out.println(dir_xml);
- System.out.println("***********************");
- return true;
- }
- }
Add Comment
Please, Sign In to add comment