如何在java电子邮件消息中插入for语句

如何在java电子邮件消息中插入for语句,java,html,email,servlets,Java,Html,Email,Servlets,我创建了一个带有动态附加行的html页面。 我创建了一个字符串数组,将值放入servlet。 现在,我正试图向自己发送一封包含所有这些价值观的电子邮件。 为此,我在servlet中使用java邮件API。 如何在 message.setText() 如果不可能,有哪些不同的方法可以发送带有字符串数组的电子邮件 String[] items = request.getParameterValues("Item"); String[] categories = request.getPara

我创建了一个带有动态附加行的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);
    }

}
String[]items=request.getParameterValues(“Item”);
String[]categories=request.getParameterValues(“categority”);
String[]Name=request.getParameterValues(“Name”);
字符串[]数量=request.getParameterValues(“数量”);
System.out.println(“*************************************”);
用于(字符串项:项){
System.out.println(“项为:“+项”);
}
用于(字符串类别:类别){
System.out.println(“类别为:“+类别”);
}
for(字符串名称:名称){
System.out.println(“名称为:”+Name);
}
用于(字符串数量:数量){
系统输出打印项次(“数量为:+数量);
}

对于(inti=0;i,HTML中没有循环

您应该使用类似Velocity的模板解决方案,通过在动态数据上循环,然后发送结果来生成电子邮件正文


尝试下面的示例站点,这可能会对您有所帮助


从该数组中准备字符串有什么问题?迭代数组并准备字符串。发送一个包含所需数据的CSV文件(附件),您可以忘记HTML消息(仅在您愿意的情况下)。@PaulVargas并非所有最终用户都喜欢打开和解析CSV以阅读电子邮件=\I created String[]。若要从该数组创建字符串,我需要使用for语句。我无法在message.setText()中使用for语句。@Devi setText()方法是否不将字符串作为参数?@sᴜʀᴇsʜᴀᴛᴛᴀ Servlet不是生成电子邮件HTML内容的正确位置。出于维护原因,最好使用velocity或其他库的HTML模板。请记住,在MVC中,视图逻辑必须在视图中,在本例中,视图逻辑必须在电子邮件HTML生成器中,而Servlet是仅收集待处理数据的控制器在视图中使用。我给出了答案,你没有。我不知道你在想什么。我有时会因为速度太快而误读问题,所以可能是我。我不能像这样直接给出字符串。当我在HTML页面中添加行时,我怎么知道用户提供了多少组值。所以,我不能这样做。我发布了我的代码,只是go通过一次。如果是这样,那么使用Velocity或freemarker可以帮助您。