使用mail.jar和activation.jar发送所需的邮件内容

时间:2010-10-24 07:30:14

标签: java email activation

我使用mail.jar和activation.jar作为类路径并已编程自动发送邮件,并且工作正常。

在我的程序中,内容被声明为String。但我的要求是,我需要从我的SQL DB的不同表中检索一些计数,并将其附加到我的邮件内容中。

我认为将内容声明为String将无法帮助我完成任务,因为我将在邮件内容中发送的行数将超过五或六。

请告诉我如何将大文字添加到邮件内容中。用于证明相同的任何类型的链接或教程都将非常值得注意。非常感谢提前..快乐星期天的人...... !!

3 个答案:

答案 0 :(得分:1)

如果您只需要发送几行而不是一行,您仍然可以使用单个字符串。 String可以包含多行文本。只需在必要时添加换行符。

实际上假设您的邮件正文是纯文本格式,您应该使用CR LF作为行终止符(每行末尾\r\n)。

所以你可以像这样构建你的内容:

String content = "This is line 1 of the email\r\n"
    + "This is line 2 of the email\r\n"
    + "This is line 3 of the email\r\n";

答案 1 :(得分:1)

您可能熟悉System.out.println等...您可以使用此方法打印到这样的字符串:

StringWriter sw = new StringWriter();
PrintWriter pw = new PrintWriter(sw);

pw.println("Hello");            // Appends two
pw.println("World");            // separate lines

pw.printf("Hello %d World", 5); // Using printf

pw.println();                   // appends a new-line
pw.print("Another line.");      // appends string w/o new-line

pw.println();                   // appends two
pw.println();                   // newlines

String rowFormat = "%8s %8s %8s %8s %8s%n";
pw.printf(rowFormat, "Col A", "Col B", "Col C", "Col XY", "Col De", "Col Ef");
pw.printf(rowFormat, "A", "19", "Car", "55", "Blue", "Last");
pw.printf(rowFormat, "X", "21", "Train C", "-4", "Red", "Demo");
pw.printf(rowFormat, "B", "-9", "Bike", "0", "Green", "Column");

String message = sw.toString();

System.out.println(message);

上面的代码片段(在最后System.out.println - 调用中)打印:

Hello
World
Hello 5 World
Another line.

   Col A    Col B    Col C   Col XY   Col De
       A       19      Car       55     Blue
       X       21  Train C       -4      Red
       B       -9     Bike        0    Green

通过这种方式,您可以使用println方法调用轻松构建电子邮件消息字符串。

答案 2 :(得分:1)

查看[link text] [1],以便使用String动态合并参数。您可以考虑将文本作为类路径中的资源加载而不是静态String。

[1]:http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html#format(java.lang.String,java.lang.Object ...)