public static void main(String[] args) throws MessagingException, IOException { Properties props = new Properties(); try (InputStream in = Files.newInputStream(Paths.get("mail", "mail.properties"))) { props.load(in); } List<String> lines = Files.readAllLines(Paths.get(args[0]), Charset.forName("UTF-8")); String from = lines.get(0); String to = lines.get(1); String subject = lines.get(2); StringBuilder builder = new StringBuilder(); for (int i = 3; i < lines.size(); i++) { builder.append(lines.get(i)); builder.append("\n"); } Console console = System.console(); String password = new String(console.readPassword("Password: ")); Session mailSession = Session.getDefaultInstance(props); // mailSession.setDebug(true); MimeMessage message = new MimeMessage(mailSession); message.setFrom(new InternetAddress(from)); message.addRecipient(RecipientType.TO, new InternetAddress(to)); message.setSubject(subject); message.setText(builder.toString()); Transport tr = mailSession.getTransport(); try { tr.connect(null, password); tr.sendMessage(message, message.getAllRecipients()); } finally { tr.close(); } }
/** construct recipient addresses from user entities */ private Address[] resolveAddresses(List<User> users, AddressResolver addressResolver) { int userCount = users.size(); List<Address> addresses = new ArrayList<Address>(); for (int i = 0; i < userCount; i++) { if (!StringUtils.isEmpty(users.get(i).getBusinessEmail())) { addresses.add(addressResolver.resolveAddress(users.get(i))); } } return addresses.toArray(new Address[addresses.size()]); }
public void messageChanged(MessageChangedEvent e) { Message changedMessage = e.getMessage(); for (int i = 0; i < messages.size(); ++i) { if (messages.get(i) == changedMessage) { fireTableRowsUpdated(i, i); } } }
public Message getMessage(int row) { return messages.get(row); }