春季电子邮件和新行字符

时间:2011-01-04 18:55:13

标签: java spring java-ee velocity

有人可以告诉我如何在电子邮件内容中插入换行符。我使用此代码段发送电子邮件。

public boolean sendMail(final Account player, final Object tl, final String type)
{
    MimeMessagePreparator preparator = new MimeMessagePreparator() {
        public void prepare(MimeMessage mimeMessage) throws Exception
        {
            MimeMessageHelper message = new MimeMessageHelper(mimeMessage);

            String msgAdmin = msgFrom;
            message.setTo(player.getEmail()); // TODO: changed from msgAdmin to player.getEmail()
            message.setFrom(msgFrom);
            message.setSubject(type + " invitation");
            Map model = new HashMap();
            model.put("tl", tl);
            model.put("player", player);
            model.put("type", type);
            String text = VelocityEngineUtils.mergeTemplateIntoString(velocityEngine,
                    "com/test/mail/invite.vm", model);
            logger.debug(text);
            message.setText(text, true);
        }
    };
    return sendMail(preparator);
}

我在电子邮件内容中尝试了\ r \ n字符。但它似乎没有用。像BR标签这样的HTML标记有效,但我不想在电子邮件内容中添加html标记。还有其他解决办法吗?

2 个答案:

答案 0 :(得分:2)

实际上问题是当你调用message.setText时,你将第二个争论设置为true。这意味着该消息被解释为HTML。为了显示电子邮件换行符,只需将第二个参数设置为false。

答案 1 :(得分:1)

换行符和速度模板是一个记录良好的问题。最好的解决方法是将“\ n”存储为您可用于模板的属性的值。然后引用该属性。