如何在javamail中以对齐格式编写邮件正文

时间:2013-10-08 08:52:57

标签: java escaping javamail chars

我将收集数据库中的所有数据并将它们放入集合中。我想将该集合中的所有数据放入我的javamail主体中,其格式如下所示。我应该如何将列表数据放在正文内容中:

  EmployeeName:Ranjeeth.
  Login Time:09:30.
  Logout Time:18:30.

使用转义字符如何用字符串写?

1 个答案:

答案 0 :(得分:1)

最常见的方法之一是创建一个包含数据占位符的电子邮件模板。在运行时填充模板中的数据,然后使用java邮件正文中的完整文本。

逐步:

  1. 在项目中创建模板文件,例如mailBody.txt。内容可能是这样的:

    员工姓名:## EMP_NAME ##。

    登录时间:## LOGIN_TIME ##。

    退出时间:## LOGOUT_TIME ##。

  2. 在运行时以字符串形式读取此文件内容,以便:

    请参阅此How to really read text file from classpath in Java

  3. 从inpitstream阅读内容

        InputStream is = new FileInputStream("test");  // or your input stream
        byte[] b = new byte[is.available()];
        is.read(b);
        String text = new String(b);
        //System.out.println(text);
    
    `String s = <content of the file>`
    

    3。准备数据库中的数据,然后替换字符串内容占位符,如:

    s = s.replace("##EMP_NAME##", <emp name value from database>)

    s = s.replace("##LOGIN_TIME##", <login time value from database>)

    s = s.replace("##LOGOUT_TIME##", <logout value from database>)

    1. 使用String s作为电子邮件正文内容。
    2. 您可以在模板中添加任何类型的格式,标签,空格等,您的程序将无缝更改电子邮件文本。


      编辑:一次又一次地重复某个部分: 如果你有重复的简单数据,只需考虑像内联一样创建它:

      StringBuilder temp=new StringBuilder("");
      for(loop to repeat the content){
      temp.append(<Emp Name value from database>).append("\n\t\t")
      .append(<login time value from database>).append("\n\t\t")
      .append(<logout time value from database>).append("\n\t\t");
      }
      

      制作模板:

        

      您好,

           

      以下是用户的详细信息:

           

      $#EMP_DETAILS#$

           

      谢谢,你的名字

      将模板读入字符串变量

      String s = <content of the file>;
      

      然后

      s.replace("$#EMP_DETAILS#$", temp.toString());
      

      你应该全力以赴。