2014-11-07 3 views
-1

JavaMail을 사용하여 여러 수신자에게 메일을 보내려고합니다. 각 메시지의 내용은 달라야합니다. 이 프로그램은 나에게 동일한 내용으로 다른 수신자에게 전자 메일을 보냅니다. 아무도 나를 도울 수 있습니까? 그녀는 내 소스 코드입니다. 내가 for 루프에이를 쓸 때다른 내용으로 여러 수신자에게 전자 메일 보내기

public static void postMail(String[] recipients, String subject, Timestamp time)throws MessagingException { 
String nachricht = null; 
String link = null; 
Session session = MailUtil.getGMailSession("username", "password"); 
Message msg = new MimeMessage(session); 

msg.setSubject(subject); 


for(int i=0; i<=recipients.length-1;i++){ 
System.out.println(recipients[i]); 
link = recipients[i] + "/" + time; 
msg.addRecipient(Message.RecipientType.TO, new InternetAddress(recipients[i])); 
}//endOf forSchleife 
message = link 
msg.setContent(message, "text/plain"); 
Transport.send(msg); 
} 

답변

0
I think that the code should be like below: 

    for(int i=0; i<=recipients.length-1;i++){ 
     Message msg = new MimeMessage(session); 
     msg.setSubject(subject); 
     System.out.println(recipients[i]); 
     link = recipients[i] + "/" + time; 
     //msg.addRecipient(Message.RecipientType.TO, new InternetAddress(recipients[i])); 
     //Try this please    
     msg.setRecipient(Message.RecipientType.TO, new InternetAddress(recipients[i])); 

message = link 
     msg.setContent(message, "text/plain"); 
     Transport.send(msg); 
    }//endOf forSchleife 
inside of the for loop... 
+0

, 나는 이전과 동일한 문제를 얻는다. 동일한 콘텐츠를 가진 모든 수신자에게 하나의 메일. 그러나 각 수신자는 이메일 주소와 타임 스탬프에서 자체 링크를 가져와야합니다. –

+0

Transport.send (msg); for 루프에서. 여기에서하는 일은 하나의 전자 메일을 마지막 수신자에 대한 메시지와 함께 여러 수신자에게 보냅니다. 한 번에 다른 메시지가있는 여러 수신자에게 전자 메일을 보내는 것은 불가능합니다. 업데이트 된 답변을 살펴보십시오. – BlueLettuce16

+0

for 루프에 Transport.send (msg)를 놓으면 수신자 세 개의 메일에 programm을 보냅니다. 그건 옳지 않아. 너 나 좀 도와 줄 수있어? –

관련 문제