b_rajathilagam
asked on
Java Mail API, sending mail to Mutiple Receipiant "Illegal route-addr Error "
Dear Experts ,
I am trying to send a mail to multiple recipiants. I have List of mail address in a string separted by comma.
I am creating InternetAddress[] using the List of mail address in the string .
Then I am using setRecipients method to set the To address.
When I am rulling the Program I am getting Following Error " Illegal route-addr in string ``saravana.07
@gmail.com,dilleybabu@yaho o.com''"
I am adding the code segment and COmplete error message Here
public boolean sendMail(User userObj, Message message, String content){
try{
util util=new util();
//userObj.email Has E-mail Addresses Seperated By Comma
String arr[]=util.getTokens(userO bj.email," ,");
InternetAddress inetarr[]=new InternetAddress[arr.length ];
for(int i=0;i<arr.length;i++){
inetarr[i]=new InternetAddress(arr[i]);
}
message.setRecipients(Mess age.Recipi entType.TO ,inetarr);
/*
We tried This approach also
message.setRecipients(Mess age.Recipi entType.TO ,InternetA ddress.par se(userObj .email,fal se));
*/
MimeMultipart multipart=new MimeMultipart();
BodyPart msgBodyPart=new MimeBodyPart();
msgBodyPart.setContent(con tent, "text/html");
multipart.addBodyPart(msgB odyPart);
message.setContent(multipa rt);
message.setSentDate(new Date());
Transport.send(message);
return true;
}catch(Exception e){
e.printStackTrace();
return false;
}
}//End Of The Method
protected Properties getProperties(){
Properties props = new Properties();
props.put("mail.smtp.start tls.enable ","true");
props.put("mail.transport. protocol", "smtp");
props.put("mail.smtp.host" , adminObj.info.server[0]);
props.put("mail.smtp.port" ,adminObj. info.serve r_port[0]+ "");
props.put("mail.debug","fa lse");
props.put("mail.smtp.auth" , "true");
props.put("mail.smtp.quitw ait", "false");
props.put("mail.smtp.sendp artial", "true");
return props;
}//End Of The Method
/***********************ER ROR MESSAGE ************************** **/
javax.mail.internet.Addres sException : Illegal route-addr in string ``saravana.07
@gmail.com,dilleybabu@yaho o.com''
at javax.mail.internet.Intern etAddress. checkAddre ss(Interne tAddress.j ava
:883)
at javax.mail.internet.Intern etAddress. parse(Inte rnetAddres s.java:819 )
at javax.mail.internet.Intern etAddress. parseHeade r(Internet Address.ja va:
580)
at javax.mail.internet.MimeMe ssage.getA ddressHead er(MimeMes sage.java: 680
)
at javax.mail.internet.MimeMe ssage.getF rom(MimeMe ssage.java :340)
at com.sun.mail.smtp.SMTPTran sport.mail From(SMTPT ransport.j ava:897)
at com.sun.mail.smtp.SMTPTran sport.send Message(SM TPTranspor t.java:583 )
at javax.mail.Transport.send0 (Transport .java:169)
at javax.mail.Transport.send( Transport. java:98)
at common.application.utiliti es.TenderM ail.sendMa il(TenderM ail.java:4 83)
at common.application.mail.se nd_user_ma il.__Bodhi Receive(se nd_user_ma il.
java:146)
at sun.reflect.NativeMethodAc cessorImpl .invoke0(N ative Method)
at sun.reflect.NativeMethodAc cessorImpl .invoke(Na tiveMethod AccessorIm pl.
java:39)
at sun.reflect.DelegatingMeth odAccessor Impl.invok e(Delegati ngMethodAc ces
sorImpl.java:25)
at java.lang.reflect.Method.i nvoke(Meth od.java:32 4)
at jdbs.BodhiServer.callStati on(Unknown Source)
at jdbs.BodhiSend.doSend(Unkn own Source)
at common.application.mail.se ndmail.__B odhiReceiv e(sendmail .java:361)
at sun.reflect.NativeMethodAc cessorImpl .invoke0(N ative Method)
at sun.reflect.NativeMethodAc cessorImpl .invoke(Na tiveMethod AccessorIm pl.
java:39)
at sun.reflect.DelegatingMeth odAccessor Impl.invok e(Delegati ngMethodAc ces
sorImpl.java:25)
at java.lang.reflect.Method.i nvoke(Meth od.java:32 4)
at JumpForwarder1.callStation (JumpForwa rder1.java :863)
at JumpForwarder1.processRequ est(JumpFo rwarder1.j ava:613)
at JumpForwarder1.authenticat eUserAndEx ecute(Jump Forwarder1 .java:254)
at JumpForwarder1.doPost(Jump Forwarder1 .java:132)
at javax.servlet.http.HttpSer vlet.servi ce(HttpSer vlet.java: 763)
at javax.servlet.http.HttpSer vlet.servi ce(HttpSer vlet.java: 856)
at org.apache.catalina.core.A pplication FilterChai n.internal DoFilter(A ppl
icationFilterChain.java:28 4)
at org.apache.catalina.core.A pplication FilterChai n.doFilter (Applicati onF
ilterChain.java:204)
at org.apache.catalina.core.S tandardWra pperValve. invoke(Sta ndardWrapp erV
alve.java:257)
at org.apache.catalina.core.S tandardVal veContext. invokeNext (StandardV alv
eContext.java:151)
at org.apache.catalina.core.S tandardPip eline.invo ke(Standar dPipeline. jav
a:567)
at org.apache.catalina.core.S tandardCon textValve. invokeInte rnal(Stand ard
ContextValve.java:245)
at org.apache.catalina.core.S tandardCon textValve. invoke(Sta ndardConte xtV
alve.java:199)
at org.apache.catalina.core.S tandardVal veContext. invokeNext (StandardV alv
eContext.java:151)
at org.apache.catalina.authen ticator.Au thenticato rBase.invo ke(Authent ica
torBase.java:509)
at org.apache.catalina.core.S tandardVal veContext. invokeNext (StandardV alv
eContext.java:149)
at org.apache.catalina.core.S tandardPip eline.invo ke(Standar dPipeline. jav
a:567)
at org.apache.catalina.core.S tandardHos tValve.inv oke(Standa rdHostValv e.j
ava:184)
at org.apache.catalina.core.S tandardVal veContext. invokeNext (StandardV alv
eContext.java:151)
at org.apache.catalina.valves .ErrorRepo rtValve.in voke(Error ReportValv e.j
ava:164)
at org.apache.catalina.core.S tandardVal veContext. invokeNext (StandardV alv
eContext.java:149)
at org.apache.catalina.core.S tandardPip eline.invo ke(Standar dPipeline. jav
a:567)
at org.apache.catalina.core.S tandardEng ineValve.i nvoke(Stan dardEngine Val
ve.java:156)
at org.apache.catalina.core.S tandardVal veContext. invokeNext (StandardV alv
eContext.java:151)
at org.apache.catalina.core.S tandardPip eline.invo ke(Standar dPipeline. jav
a:567)
at org.apache.catalina.core.C ontainerBa se.invoke( ContainerB ase.java:9 72)
at org.apache.coyote.tomcat5. CoyoteAdap ter.servic e(CoyoteAd apter.java :20
6)
at org.apache.coyote.http11.H ttp11Proce ssor.proce ss(Http11P rocessor.j ava
:833)
at org.apache.coyote.http11.H ttp11Proto col$Http11 Connection Handler.pr oce
ssConnection(Http11Protoco l.java:732 )
at org.apache.tomcat.util.net .TcpWorker Thread.run It(PoolTcp Endpoint.j ava
:619)
at org.apache.tomcat.util.thr eads.Threa dPool$Cont rolRunnabl e.run(Thre adP
ool.java:688)
at java.lang.Thread.run(Threa d.java:534 )
With Thanks and Regards
BRT
I am trying to send a mail to multiple recipiants. I have List of mail address in a string separted by comma.
I am creating InternetAddress[] using the List of mail address in the string .
Then I am using setRecipients method to set the To address.
When I am rulling the Program I am getting Following Error " Illegal route-addr in string ``saravana.07
@gmail.com,dilleybabu@yaho
I am adding the code segment and COmplete error message Here
public boolean sendMail(User userObj, Message message, String content){
try{
util util=new util();
//userObj.email Has E-mail Addresses Seperated By Comma
String arr[]=util.getTokens(userO
InternetAddress inetarr[]=new InternetAddress[arr.length
for(int i=0;i<arr.length;i++){
inetarr[i]=new InternetAddress(arr[i]);
}
message.setRecipients(Mess
/*
We tried This approach also
message.setRecipients(Mess
*/
MimeMultipart multipart=new MimeMultipart();
BodyPart msgBodyPart=new MimeBodyPart();
msgBodyPart.setContent(con
multipart.addBodyPart(msgB
message.setContent(multipa
message.setSentDate(new Date());
Transport.send(message);
return true;
}catch(Exception e){
e.printStackTrace();
return false;
}
}//End Of The Method
protected Properties getProperties(){
Properties props = new Properties();
props.put("mail.smtp.start
props.put("mail.transport.
props.put("mail.smtp.host"
props.put("mail.smtp.port"
props.put("mail.debug","fa
props.put("mail.smtp.auth"
props.put("mail.smtp.quitw
props.put("mail.smtp.sendp
return props;
}//End Of The Method
/***********************ER
javax.mail.internet.Addres
@gmail.com,dilleybabu@yaho
at javax.mail.internet.Intern
:883)
at javax.mail.internet.Intern
at javax.mail.internet.Intern
580)
at javax.mail.internet.MimeMe
)
at javax.mail.internet.MimeMe
at com.sun.mail.smtp.SMTPTran
at com.sun.mail.smtp.SMTPTran
at javax.mail.Transport.send0
at javax.mail.Transport.send(
at common.application.utiliti
at common.application.mail.se
java:146)
at sun.reflect.NativeMethodAc
at sun.reflect.NativeMethodAc
java:39)
at sun.reflect.DelegatingMeth
sorImpl.java:25)
at java.lang.reflect.Method.i
at jdbs.BodhiServer.callStati
at jdbs.BodhiSend.doSend(Unkn
at common.application.mail.se
at sun.reflect.NativeMethodAc
at sun.reflect.NativeMethodAc
java:39)
at sun.reflect.DelegatingMeth
sorImpl.java:25)
at java.lang.reflect.Method.i
at JumpForwarder1.callStation
at JumpForwarder1.processRequ
at JumpForwarder1.authenticat
at JumpForwarder1.doPost(Jump
at javax.servlet.http.HttpSer
at javax.servlet.http.HttpSer
at org.apache.catalina.core.A
icationFilterChain.java:28
at org.apache.catalina.core.A
ilterChain.java:204)
at org.apache.catalina.core.S
alve.java:257)
at org.apache.catalina.core.S
eContext.java:151)
at org.apache.catalina.core.S
a:567)
at org.apache.catalina.core.S
ContextValve.java:245)
at org.apache.catalina.core.S
alve.java:199)
at org.apache.catalina.core.S
eContext.java:151)
at org.apache.catalina.authen
torBase.java:509)
at org.apache.catalina.core.S
eContext.java:149)
at org.apache.catalina.core.S
a:567)
at org.apache.catalina.core.S
ava:184)
at org.apache.catalina.core.S
eContext.java:151)
at org.apache.catalina.valves
ava:164)
at org.apache.catalina.core.S
eContext.java:149)
at org.apache.catalina.core.S
a:567)
at org.apache.catalina.core.S
ve.java:156)
at org.apache.catalina.core.S
eContext.java:151)
at org.apache.catalina.core.S
a:567)
at org.apache.catalina.core.C
at org.apache.coyote.tomcat5.
6)
at org.apache.coyote.http11.H
:833)
at org.apache.coyote.http11.H
ssConnection(Http11Protoco
at org.apache.tomcat.util.net
:619)
at org.apache.tomcat.util.thr
ool.java:688)
at java.lang.Thread.run(Threa
With Thanks and Regards
BRT
I think your util.getTokens() method is not properly splitting the comma separate, if u are using Java5 use userObj.email.split(",") to get a String array
ASKER
Hi
i used util.getTokens() in many function.its working fine. even i tested here, by using
System.out.println(arr[i]) in the for loop, its displaying all the address 1by 1 i have given.
i used util.getTokens() in many function.its working fine. even i tested here, by using
System.out.println(arr[i])
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Forced accept.
Computer101
EE Admin
Computer101
EE Admin