我用Stringbuilder构建一个String,最后我想通过电子邮件发送这个String,但似乎文本总是在~1500个字符后被切断。
List<Itprojekte> items = tableModel.getAllElements();
StringBuilder body = new StringBuilder(items.size() * 80);
SimpleDateFormat df = new SimpleDateFormat("dd.MM.yyyy HH:mm");
for (Itprojekte project : items) {
body.append("Time:\n").append(df.format(project.getTime())).append("\n\n");
body.append(lineSeparator);
body.append("Name:\n").append(project.getName()).append("\n\n");
body.append(lineSeparator);
body.append("Place:\n").append(project.getTown()).append("\n\n");
body.append(lineSeparator);
body.append("Description:\n").append(project.getDescription()).append("\n\n");
body.append(lineSeparator);
body.append("Link:\n").append(project.getUrl().trim());
body.append(lineSeparator);
body.append(lineSeparator);
}
try {
mailto("Test", body.toString());
} catch (IOException ex) {
Logger.getLogger(ProjectsResultjForm.class.getName()).log(Level.SEVERE, null, ex);
} catch (URISyntaxException ex) {
Logger.getLogger(ProjectsResultjForm.class.getName()).log(Level.SEVERE, null, ex);
}
mailto:
public static void mailto(String subject,
String body) throws IOException, URISyntaxException {
String uriStr = String.format("mailto:?subject=%s&body=%s",
urlEncode(subject),
urlEncode(body));
Desktop.getDesktop().browse(new URI(uriStr));
}
答案 0 :(得分:0)
唯一需要注意的是可用的堆空间。
答案 1 :(得分:0)
一切都还好。 首先,您可以降低资源,使用StringBuilder的初始容量加快速度。
StringBuilder subject = new StringBuilder(items.size() * 80);
for (Itprojekte project : items) {
...
}
if (subject.length() < 1500) {
Logger.getLogger(ProjectsResultjForm.class.getName()).log(Level.WARN,
"*** Mail body: {0}", subject);
}
错误位于mailto网址中:网址的大小限制为1600左右。