Форматирование HTML в содержимом автоматической почты - PullRequest
1 голос
/ 28 октября 2010
StringWriter sw = new StringWriter();
PrintWriter pw = new PrintWriter(sw);

String rowFormat = "%8s %8s %8s %8s%n";
pw.printf(rowFormat, "Col A", "Col B", "Col C", "Col XY");
pw.printf(rowFormat, "A", "19", "Car", "55");
pw.printf(rowFormat, "X", "21", "Train C", "-4");
pw.printf(rowFormat, "B", "-9", "Bike", "0");
String message = sw.toString();
System.out.println(message);

Приведенная выше программа печатает следующую таблицу и выравнивание идеально.

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

Вместо печати string message я передаю строку другой функции, которая отправляет электронное письмо с содержимымпочты как string message.

mail.setContent(message.toString(),"text/plain");

Вот так я настраиваю содержимое в качестве сообщения в моей почте.

Но выравнивание таблицы не подходит, как яполучить при печати строки.Что нужно сделать так, чтобы я получал содержимое моей почты так же, как и формат печати строки.

Я могу понять, что установка типа mime на text/html и использование тега <table> для формирования таблицы поможет мне выполнить требуемую задачу.

Пожалуйста, дайте мне знать, каки где должны быть вставлены теги <table><tr><th>, чтобы найти табличный формат в содержимом письма.

1 Ответ

2 голосов
/ 28 октября 2010

Лично я бы использовал скорость для чего-то подобного, однако, я думаю, это то, что вы хотите:

String headerFormat = "<tr><th>%8s</th><th>%8s</th><th>%8s</th><th>%8s%n</th></tr>";
String rowFormat = "<tr><td>%8s</td><td>%8s</td><td>%8s</td><td>%8s%n</td></tr>";

pw.printf(headerFormat, "Col A", "Col B", "Col C", "Col XY");
pw.printf(rowFormat, "A", "19", "Car", "55");
pw.printf(rowFormat, "X", "21", "Train C", "-4");
pw.printf(rowFormat, "B", "-9", "Bike", "0");

String message = "<table>" + sw.toString() + "</table>";
System.out.println(message);

Вы можете получить больше информации о таблицах HTML здесь .

...