The email gets sents only to the last email address in the String[] to
array. I’m intending to send to all email addresses added to the array. How can I make that work?
public void sendMail(String from, String[] to, String subject, String msg, List attachments) throws MessagingException { // Creating message sender.setHost("smtp.gmail.com"); MimeMessage mimeMsg = sender.createMimeMessage(); MimeMessageHelper helper = new MimeMessageHelper(mimeMsg, true); Properties props = new Properties(); props.put("mail.smtp.starttls.enable", "true"); props.put("mail.smtp.auth", "true"); props.put("mail.smtp.port", "425"); Session session = Session.getDefaultInstance(props, null); helper.setFrom(from); helper.setTo(to); helper.setSubject(subject); helper.setText(msg + "<html><body><h1>hi welcome</h1><body></html", true); Iterator it = attachments.iterator(); while (it.hasNext()) { FileSystemResource file = new FileSystemResource(new File((String) it.next())); helper.addAttachment(file.getFilename(), file); } // Sending message sender.send(mimeMsg); }
Advertisement
Answer
You have the choice to use the following 4 methods. I have provided examples of the two methods useful in this case. I have consolidated this information from the commentators below.
helper.setTo(InternetAddress.parse("email1@test.com,email2@test.com")) helper.setTo(new String[]{"email1@test.com", "email2@test.com"});
From the Javadoc: