Я создал html-страницу с динамическими добавлениями строк. Я создал массив строк, чтобы получить значения в сервлет. И теперь я пытаюсь отправить электронное письмо себе со всеми этими значениями. Для этого я использую java mail API в своем сервлете. Как я могу передать строку массивов в message.setText();
Если это невозможно, каковы разные способы отправки электронной почты с помощью массива строк.
String[] items = request.getParameterValues("Item");
String[] categories = request.getParameterValues("Category");
String[] names = request.getParameterValues("Name");
String[] quantities = request.getParameterValues("Quantity");
System.out.println("************ExperimentServlet************");
for (String item : items) {
System.out.println("Item is : "+item);
}
for(String category : categories) {
System.out.println("Category is : "+category);
}
for(String name : names) {
System.out.println("Name is : "+name);
}
for(String quantity : quantities) {
System.out.println("Quantity is : "+quantity);
}
for(int i=0; i<20; i++) {
System.out.println("Item 1 is :" + items[i]);
System.out.println("Category 1 is :"+ categories[i]);
System.out.println("Name 1 is :"+ names[i]);
System.out.println("Quantity 1 is : "+quantities[i]);
}
Properties props = new Properties();
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.starttls.enable", "true");
props.put("mail.smtp.host", "smtp.gmail.com");
props.put("mail.smtp.port", "587");
Session session = Session.getInstance(props,
new javax.mail.Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication("[email protected]", "xyz");
}
});
try {
Message message = new MimeMessage(session);
message.setFrom(new InternetAddress("[email protected]"));
message.setRecipients(Message.RecipientType.TO,
InternetAddress.parse("[email protected]"));
message.setSubject("My eMail First Example");
message.setText("Dear Mail Crawler,"
+ "\n\n No spam to my email, please!"
+ "\n\n" + items[i] + " " + categories[i]+ " "+ names[i]+ " "+ quantities[i]
);
Transport.send(message);
System.out.println("Done");
} catch (MessagingException e) {
throw new RuntimeException(e);
}
}
}
Если я это сделаю, я могу отправить электронное письмо со значениями менее 20 наборов значений, но дело в том, что он отображает исключение индекса массива из пределов, если я поставляю менее 20 наборов значений. Нет гарантии, что каждый пользователь поставит 20 наборов значений.
Попробуйте следующие примеры сайтов, которые могут вам помочь
http://www.springbyexample.org/examples/velocity-email-template.html
В HTML нет петель.
Вы должны использовать решение для шаблонов, такое как Velocity, для генерации тела электронной почты путем циклического перемещения по динамическим данным и последующей отправки результата.
Используйте Velocity для создания электронной почты на основе HTML