【问题标题】:Sending required mail content using mail.jar and activation.jar使用 mail.jar 和 activation.jar 发送所需的邮件内容
【发布时间】:2011-04-29 18:37:04
【问题描述】:

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

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

我认为将内容声明为字符串不会帮助我完成任务,因为我将在邮件内容中发送的行数将超过五六行。

请告诉我如何将大文本添加到邮件内容中。任何类型的链接或教程来证明这一点都是非常可观的。提前非常感谢.. 祝大家星期天快乐.. !!

【问题讨论】:

    标签: java email activation


    【解决方案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);
    

    上面的 sn-p 代码将(在最后一个 System.out.println-call 中)打印:

    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-方法调用轻松构建电子邮件消息字符串。

    【讨论】:

    • 感谢您的解释。我想我可以使用它来管理。并且是否可以在邮件的内容中使用一个字符串来形成一个三行六列的表格?
    • 是的。如果我需要布置一张桌子,我肯定会选择printf
    • 网络上有任何可用的示例来定义相同的吗?
    • 非常感谢.. 你让事情看起来更容易了
    【解决方案2】:

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

    实际上假设您的邮件正文是纯文本格式,您应该使用 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";
    

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-07-07
        • 1970-01-01
        • 2022-07-20
        • 1970-01-01
        • 2015-05-10
        • 1970-01-01
        • 2015-03-10
        • 2019-04-30
        相关资源
        最近更新 更多