I am trying to send emails using java from a database. After running my main method for some reason, I get this 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 '' at position 23 at javax.mail.internet.InternetAddress.parse(InternetAddress.java:929) at javax.mail.internet.InternetAddress.parse(InternetAddress.java:638) at javax.mail.internet.InternetAddress.parse(InternetAddress.java:615) at EmailSender.sendEmail(TestSendEmails.java:120) at EmailSender.sendEmail(TestSendEmails.java:128) at Main.main(Main.java:8)
I assume my list of arrays is not built correctly. Here is my 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 * From 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 is my 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 anyone help with this? Thanks in advance.
source share