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
Post a Comment