2015-02-06 2 views
0

Мне было поручено написать приложение, которое отправит электронное письмо 1-3 получателям с 5 возможными вопросами опроса. Вопросы и получатели извлекаются из файла свойств, а количество отправленных сообщений электронной почты также хранится в этом файле.JavaMail - отправка нескольких электронных писем в цикле

Моя проблема заключается в том, что я не могу получить электронные письма для отправки с помощью этого кода, любые предложения?

EmailSend

for(int j=0; j<noOfEmails; j++) 
      { 
       if(noOfEmails==1) 
       { 
        for(int i=0; i<noOfQuest; i++) 
        { 
         message.addRecipient(Message.RecipientType.TO, new InternetAddress(recipient1)); 
         if(noOfQuest==1) 
         { 
          message.setText("Username: " + fName + " "+ sName + "\n" + 
               "Response 1: " + answers[0]); 
         } 
         if(noOfQuest==2) 
         { 
          message.setText("Username: " + fName + " "+ sName + 
               "Response 1: " + answers[0] + "\n" + 
                "Response 2: " + answers[1]); 
         } 
         if(noOfQuest==3) 
         { 
          message.setText("Username: " + fName + " "+ sName + 
               "Response 1: " + answers[0] + "\n" + 
                "Response 2: " + answers[1] + "\n" + 
                 "Response 3: " + answers[2]); 
         } 
         if(noOfQuest==4) 
         { 
          message.setText("Username: " + fName + sName + 
               "Response 1: " + answers[0] + "\n" + 
                "Response 2: " + answers[1] + "\n" + 
                 "Response 3: " + answers[2] + "\n" + 
                  "Response 4: " + answers[3]); 
         } 
         if(noOfQuest==5) 
         { 
          message.setText("Username: " + fName + " "+ sName + 
               "Response 1: " + answers[0] + "\n" + 
                "Response 2: " + answers[1] + "\n" + 
                 "Response 3: " + answers[2] + "\n" + 
                  "Response 4: " + answers[3] + "\n" + 
                   "Response 4: " + answers[4]); 
         } 

         Transport.send(message); 
        } 
        if(noOfEmails==2) 
        { 
         for(int i=0; i<noOfQuest; i++) 
         { 
          message.addRecipient(Message.RecipientType.TO, new InternetAddress(recipient2)); 
          if(noOfQuest==1) 
          { 
           message.setText("Username: " + fName + " "+ sName + "\n" + 
                "Response 1: " + answers[0]); 
          } 
          if(noOfQuest==2) 
          { 
           message.setText("Username: " + fName + " "+ sName + 
                "Response 1: " + answers[0] + "\n" + 
                 "Response 2: " + answers[1]); 
          } 
          if(noOfQuest==3) 
          { 
           message.setText("Username: " + fName + " "+ sName + 
                "Response 1: " + answers[0] + "\n" + 
                 "Response 2: " + answers[1] + "\n" + 
                  "Response 3: " + answers[2]); 
          } 
          if(noOfQuest==4) 
          { 
           message.setText("Username: " + fName + sName + 
                "Response 1: " + answers[0] + "\n" + 
                 "Response 2: " + answers[1] + "\n" + 
                  "Response 3: " + answers[2] + "\n" + 
                   "Response 4: " + answers[3]); 
          } 
          if(noOfQuest==5) 
          { 
           message.setText("Username: " + fName + " "+ sName + 
                "Response 1: " + answers[0] + "\n" + 
                 "Response 2: " + answers[1] + "\n" + 
                  "Response 3: " + answers[2] + "\n" + 
                   "Response 4: " + answers[3] + "\n" + 
                    "Response 4: " + answers[4]); 
          } 

          Transport.send(message); 
         } 
        } 
        if(noOfQuest==3) 
        { 
         for(int i=0; i<noOfQuest; i++) 
         { 
          message.addRecipient(Message.RecipientType.TO, new InternetAddress(recipient3)); 
          if(noOfQuest==1) 
          { 
           message.setText("Username: " + fName + " "+ sName + "\n" + 
                "Response 1: " + answers[0]); 
          } 
          if(noOfQuest==2) 
          { 
           message.setText("Username: " + fName + " "+ sName + 
                "Response 1: " + answers[0] + "\n" + 
                 "Response 2: " + answers[1]); 
          } 
          if(noOfQuest==3) 
          { 
           message.setText("Username: " + fName + " "+ sName + 
                "Response 1: " + answers[0] + "\n" + 
                 "Response 2: " + answers[1] + "\n" + 
                  "Response 3: " + answers[2]); 
          } 
          if(noOfQuest==4) 
          { 
           message.setText("Username: " + fName + sName + 
                "Response 1: " + answers[0] + "\n" + 
                 "Response 2: " + answers[1] + "\n" + 
                  "Response 3: " + answers[2] + "\n" + 
                   "Response 4: " + answers[3]); 
          } 
          if(noOfQuest==5) 
          { 
           message.setText("Username: " + fName + " "+ sName + 
                "Response 1: " + answers[0] + "\n" + 
                 "Response 2: " + answers[1] + "\n" + 
                  "Response 3: " + answers[2] + "\n" + 
                   "Response 4: " + answers[3] + "\n" + 
                    "Response 4: " + answers[4]); 
          } 
          Transport.send(message); 
         } 
        } 
       } 
      } 
+0

Я бы рекомендовал читать на петлях в онлайн-учебниках Java. Все, что вам нужно знать, находится прямо здесь. –

+0

Спасибо, я отправлю свой ответ, когда я его заработаю. –

+0

Игнорируя всю неэффективность базовой кодировки, вам нужно будет более подробно объяснить, что вы подразумеваете под «не может получить электронные письма для отправки». Начните с этой записи [JavaMail FAQ для отладки] (http://www.oracle.com/technetwork/java/javamail/faq/index.html#debug). –

ответ

0

После нескольких экспериментов, я заметил, что 2 из 3, если заявления были вложены в первом, вызывая проваливаются.

Вот рабочий код:

** для цикла, чтобы проверить файл конфигурации, используя для чтения **

for(int i=0; i<noOfEmails; i++) 
     { 
      if(noOfEmails==1) 
      { 
       for(int j=0; j<noOfQuest; j++) 
       { 
        System.out.println("In Loop[" + j + "] : recipient1: "+ recipient1); 


        if(i==0) 
        { 
         message.setRecipient(Message.RecipientType.TO, new InternetAddress(recipient1));        
        } 
        if(noOfQuest==1) 
        { 
         message.setText("Username: " + fName + " "+ sName + "\n" + 
              "Response 1: " + answers[0]);       
        } 
        if(noOfQuest==2) 
        { 
         message.setText("Username: " + fName + " "+ sName + "\n" + 
              "Response 1: " + answers[0] + "\n" + 
               "Response 2: " + answers[1]);       
        } 
        if(noOfQuest==3) 
        { 
         message.setText("Username: " + fName + " "+ sName + "\n" + 
              "Response 1: " + answers[0] + "\n" + 
               "Response 2: " + answers[1] + "\n" + 
                "Response 3: " + answers[2]);       
        } 
        if(noOfQuest==4) 
        { 
         message.setText("Username: " + fName + " "+ sName + "\n" + 
              "Response 1: " + answers[0] + "\n" + 
               "Response 2: " + answers[1] + "\n" + 
                "Response 3: " + answers[2] + "\n" + 
                 "Response 4: " + answers[3]);       
        } 
        if(noOfQuest==5) 
        { 
         message.setText("Username: " + fName + " "+ sName + "\n" + 
              "Response 1: " + answers[0] + "\n" + 
               "Response 2: " + answers[1] + "\n" + 
                "Response 3: " + answers[2] + "\n" + 
                 "Response 4: " + answers[3] + "\n" + 
                  "Response 4: " + answers[4]); 
        } 
       } 
      } 

      if(noOfEmails==2) 
      { 
       for(int k=0; k<noOfQuest; k++) 
       { 
        System.out.println("In Loop[" + k + "] : recipient2: "+ recipient2); 

        if(i==0) 
        { 
         message.setRecipient(Message.RecipientType.TO, new InternetAddress(recipient1)); 
        } 
        if(i==1) 
        { 
         message.setRecipient(Message.RecipientType.TO, new InternetAddress(recipient2)); 
        } 
        if(noOfQuest==1) 
        { 
         message.setText("Username: " + fName + " "+ sName + "\n" + 
              "Response 1: " + answers[0]);        
        } 
        if(noOfQuest==2) 
        { 
         message.setText("Username: " + fName + " "+ sName + "\n" + 
              "Response 1: " + answers[0] + "\n" + 
               "Response 2: " + answers[1]);        
        } 
        if(noOfQuest==3) 
        { 
         message.setText("Username: " + fName + " "+ sName + "\n" + 
              "Response 1: " + answers[0] + "\n" + 
               "Response 2: " + answers[1] + "\n" + 
                "Response 3: " + answers[2]);        
        } 
        if(noOfQuest==4) 
        { 
         message.setText("Username: " + fName + " "+ sName + "\n" + 
              "Response 1: " + answers[0] + "\n" + 
               "Response 2: " + answers[1] + "\n" + 
                "Response 3: " + answers[2] + "\n" + 
                 "Response 4: " + answers[3]);        
        } 
        if(noOfQuest==5) 
        { 
         message.setText("Username: " + fName + " "+ sName + "\n" + 
              "Response 1: " + answers[0] + "\n" + 
               "Response 2: " + answers[1] + "\n" + 
                "Response 3: " + answers[2] + "\n" + 
                 "Response 4: " + answers[3] + "\n" + 
                  "Response 4: " + answers[4]);        
        } 
       } 
      } 

      if(noOfEmails==3) 
      { 
       if(i==0) 
       { 
        message.setRecipient(Message.RecipientType.TO, new InternetAddress(recipient1)); 
        System.out.println(recipient1); 
       } 
       if(i==1) 
       { 
        message.setRecipient(Message.RecipientType.TO, new InternetAddress(recipient2)); 
        System.out.println(recipient2); 
       } 
       if(i==2) 
       { 
        message.setRecipient(Message.RecipientType.TO, new InternetAddress(recipient3)); 
        System.out.println(recipient3); 
       } 

       for(int l=0; l<noOfQuest; l++) 
       { 
        System.out.println("In Loop[" + l + "] : recipient3: "+ recipient3); 


        if(noOfQuest==1) 
        { 
         message.setText("Username: " + fName + " "+ sName + "\n" + 
              "Response 1: " + answers[0]);        
        } 
        if(noOfQuest==2) 
        { 
         message.setText("Username: " + fName + " "+ sName + "\n" + 
              "Response 1: " + answers[0] + "\n" + 
               "Response 2: " + answers[1]);        
        } 
        if(noOfQuest==3) 
        { 
         message.setText("Username: " + fName + " "+ sName + "\n" + 
              "Response 1: " + answers[0] + "\n" + 
               "Response 2: " + answers[1] + "\n" + 
                "Response 3: " + answers[2]);        
        } 
        if(noOfQuest==4) 
        { 
         message.setText("Username: " + fName + " "+ sName + "\n" + 
              "Response 1: " + answers[0] + "\n" + 
               "Response 2: " + answers[1] + "\n" + 
                "Response 3: " + answers[2] + "\n" + 
                 "Response 4: " + answers[3]);        
        } 
        if(noOfQuest==5) 
        { 
         message.setText("Username: " + fName + " "+ sName + "\n" + 
              "Response 1: " + answers[0] + "\n" + 
               "Response 2: " + answers[1] + "\n" + 
                "Response 3: " + answers[2] + "\n" + 
                 "Response 4: " + answers[3] + "\n" + 
                  "Response 4: " + answers[4]); 
        } 
       } 
      } 
      Transport.send(message); 
      System.out.println("Sent: " + message); 
     } 

Для всех, кто находится в замешательстве, "noOfEmails | noOfQuest" 2 переменные которые считываются из файла свойств.

Смежные вопросы