arraylist - Java Send Email Illegal semicolon? -


i'm trying send emails java database. after run main method reason i'm getting error:

exception in thread "main" javax.mail.internet.addressexception: illegal semicolon, not in group in string ``john@gmail.com;eric@gmail.com;carrie@gmail.com;mark@gmail.com;britney@gmail.com'' @ position 23     @ javax.mail.internet.internetaddress.parse(internetaddress.java:929)     @ javax.mail.internet.internetaddress.parse(internetaddress.java:638)     @ javax.mail.internet.internetaddress.parse(internetaddress.java:615)     @ emailsender.sendemail(testsendemails.java:120)     @ emailsender.sendemail(testsendemails.java:128)     @ main.main(main.java:8) 

i'm assuming array list built wrong. here code:

import java.sql.connection; import java.sql.drivermanager; import java.sql.preparedstatement; import java.sql.resultset; import java.sql.sqlexception; import java.util.arraylist; import java.util.list; import java.util.properties;  import javax.mail.message; import javax.mail.messagingexception; import javax.mail.passwordauthentication; import javax.mail.session; import javax.mail.transport; import javax.mail.internet.internetaddress; import javax.mail.internet.mimemessage;  public class testsendemails {     private string emailto;     private string emailsubject;     private string emailbody;     private string emailattachments;      public testsendemails(){      }      public testsendemails(string emailto, string emailsubject, string emailbody, string emailattachments){         super();         this.emailto = emailto;         this.emailsubject = emailsubject;         this.emailbody = emailbody;         this.emailattachments = emailattachments;     }      public string getemailto(){         return emailto;     }      public void setemailto(string emailto){         this.emailto = emailto;     }      public string getemailsubject(){         return emailsubject;     }      public void setemailsubject(string emailsubject){         this.emailsubject = emailsubject;     }      public string getemailbody(){         return emailbody;     }      public void setemailbody(string emailbody){         this.emailbody = emailbody;     }      public string getemailattachments(){         return emailattachments;     }      public void setemailattachments(string emailattachments){         this.emailattachments = emailattachments;     } }  class testsendemaild{     private connection con;      private static final string get_emails = "select * emails";      private void connect() throws instantiationexception, illegalaccessexception, classnotfoundexception, sqlexception{         class.forname("com.microsoft.sqlserver.jdbc.sqlserverdriver").newinstance();         con = drivermanager.getconnection("jdbc:sqlserver://100.000.000.00\\sqlexpress:3333;databasename=demails;user=sys;password=admin");     }      public list<testsendemails> gettestsendemails() throws exception{         connect();         preparedstatement ps = con.preparestatement(get_emails);         resultset rs = ps.executequery();         list<testsendemails> result = new arraylist<testsendemails>();         while(rs.next()){             result.add(new testsendemails(rs.getstring("emailto"), rs.getstring("emailsubject"),rs.getstring("emailbody"),rs.getstring("emailattachments")));         }         disconnect();         return result;     }      private void disconnect() throws sqlexception{         if(con != null){             con.close();         }     } }  class emailsender{     private session session;      private void init(){         properties props = new properties();         props.put("mail.smtp.auth", "true");         props.put("mail.smtp.starttls.enable", "true");         props.put("mail.smtp.host", "100.000.000.00");         props.put("mail.smtp.port", "123");          session = session.getinstance(props,                   new javax.mail.authenticator() {                     protected passwordauthentication getpasswordauthentication() {                         return new passwordauthentication("work@gmail.comg", "1234");                     }                   });     }      public void sendemail(testsendemails s) throws messagingexception{         init();         message message = new mimemessage(session);         message.setfrom(new internetaddress("work@gmail.com"));         message.setrecipients(message.recipienttype.to, internetaddress.parse(s.getemailto()));         message.setsubject(s.getemailsubject());         message.settext(s.getemailbody());         transport.send(message);     }      public void sendemail(list<testsendemails> emails) throws messagingexception{         for(testsendemails testsendemails:emails ){             sendemail(testsendemails);         }     } } 

here main.java:

public class main {     public static void main(string[] args) throws exception {         testsendemaild dao=new testsendemaild();         list<testsendemails> list=dao.gettestsendemails();         emailsender sender=new emailsender();         sender.sendemail(list);     } } 

can this? in advance.

by default parse comma(,) separated email addresses , not semicolon (;),

internetaddress[] parse = internetaddress.parse("abc@gmail.com,pqr@gmail.com"); system.out.println(parse[0].getaddress()); 

output:

abc@gmail.com 

Comments