【发布时间】:2013-10-31 12:43:05
【问题描述】:
我创建了一个动态追加行的 html 页面。 我创建了一个字符串数组来将值放入 servlet。 现在,我正在尝试向自己发送一封包含所有这些价值观的电子邮件。 为此,我在我的 servlet 中使用 java 邮件 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("abcdef@gmail.com", "xyz");
}
});
try {
Message message = new MimeMessage(session);
message.setFrom(new InternetAddress("abcdef@gmail.com"));
message.setRecipients(Message.RecipientType.TO,
InternetAddress.parse("jklm@gmail.com"));
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 组值。
【问题讨论】:
-
从那个数组准备一个字符串有什么问题?遍历数组并准备一个字符串。
-
发送包含所需数据的 CSV 文件(附件),您可以忘记 HTML 消息(仅在需要时)。
-
@PaulVargas 并非所有最终用户都喜欢打开和解析用于阅读电子邮件的 csv =\
-
我创建了 String[]。要从该数组创建字符串,我需要使用 for 语句。我无法在 message.setText() 中使用 for 语句。
-
@Devi 是那个 setText() 方法没有将字符串作为参数吗?