Apache Common Email Subject不能有空行

/**
     * Set the email subject.
     *
     * @param aSubject A String.
     * @return An Email.
     * @since 1.0
     */
    public Email setSubject(String aSubject)
    {
        this.subject = aSubject;
        return this;
    }
项目中一个email功能,由于subject里面有部分信息是user录入的内容,在遇到内容有换行时,email就会出问题。如果是单个换行的情况下,换行后面的信息将无法显示在subject里面,如果有多个换行导致subject里面存在空行的话,整个email乱了。如下图:

Apache Common Email Subject不能有空行_第1张图片

红色部分加起来才是完整的subject,而因为subject中有空行,导致后面整个email的解析都出错了,把背后的源码信息输出。

所以针对subject不是固定“规范”格式,设计到user录入内容,应该把换行转成空格。进一步来说,可能需要通过测试看看有没有其他特殊字符是不允许出现的subject,例如“<”之类的。

补充一下:用的是commons-email 1.1,最新的版本是1.3,最新版本不知道有没有修正这个问题。

你可能感兴趣的:(apache,mail)