Java 如何控制邮件标题的对齐?

Java 如何控制邮件标题的对齐?,java,smtp,jakarta-mail,sendmail,Java,Smtp,Jakarta Mail,Sendmail,我遇到了一种情况,当我发送一封邮件主题超过80个字符时,有时邮件主题会插入一个“tab”字符。我检查无效电子邮件的邮件标题,它们是对齐的,如果邮件标题条目超过80个字符,它将换行,并插入一个“选项卡”。我不知道是哪个配置控制它,javaMail设置?SMTP设置 示例标题: 案例一:invaild电子邮件主题,插入字符“tab” Received: from as09.aaaaaaaaa.com ([192.168.1.129]) by aaaaaaaaa.com ([192.168.1

我遇到了一种情况,当我发送一封邮件主题超过80个字符时,有时邮件主题会插入一个“tab”字符。我检查无效电子邮件的邮件标题,它们是对齐的,如果邮件标题条目超过80个字符,它将换行,并插入一个“选项卡”。我不知道是哪个配置控制它,javaMail设置?SMTP设置

示例标题:

案例一:invaild电子邮件主题,插入字符“tab”

Received: from as09.aaaaaaaaa.com ([192.168.1.129]) by aaaaaaaaa.com
    ([192.168.1.49]) with ESMTP (TREND IMSS SMTP Service 7.0; TLS:
    TLSv1/SSLv3,168bits,DES-CBC3-SHA) id ba8afe04001a23ba ; Wed, 1 Feb 2012
    16:17:10 +0800
Received: from as09 (localhost [127.0.0.1])by as09.aaaaaaaaa.com
    (8.13.8+Sun/8.13.8) with ESMTP id q118HAgi021891;Wed, 1 Feb 2012 16:17:10
    +0800 (HKT)
Message-ID: <25866052.1328084230581.JavaMail.oracle@as09>
Date: Wed, 1 Feb 2012 08:17:10 +0000
From: <sss@abc.com>
To: ben@abc.com,
    john@abc.com,
    jimmy@abc.com
Subject: test Daily report for city pairs of iPhone App enquiries indocument
     version Demo Customer/Test/Test/123/1231
CC: sam@abc.com
MIME-Version: 1.0
JavaMail:

    Manifest-Version: 1.0
    Implementation-Version: 1.3.3_01
    Specification-Title: JavaMail(TM) API Design Specification
    Specification-Version: 1.3
    Extension-Name: javax.mail
    Created-By: 1.3.1 (Sun Microsystems Inc.)
    Implementation-Vendor-Id: com.sun
    Implementation-Vendor: Sun Microsystems, Inc.
    Specification-Vendor: Sun Microsystems, Inc.
    SCCS-ID: @(#)javamail.mf    1.5 02/03/14

JavaMail
将在调用setSubject()时包装标题,在调用getSubject()时将其展开。

根据

2.2.3。长头字段

每个标题字段在逻辑上是一行字符,包括字段名、冒号和字段正文。但是,为了方便起见,为了处理每行998/78个字符的限制,可以将标题字段的字段正文部分拆分为多个字段 线表示法;这就是所谓的“折叠”。一般规则是,只要本标准允许折叠空白(不仅仅是WSP字符),就可以在任何WSP之前插入CRLF


但同样的java代码,为什么有时插入“tab”,有时不插入?我检查了JavaMail,它只是包装主题,而不是插入一个新的字符'\t'。您需要向我展示一些有时/有时不的示例。标题的格式是以空格字符开头的换行(续行)。MIME规范允许使用空格或制表符,但JavaMail选择制表符是因为它使读取原始MIME消息时更容易读取标题。我检查了JavaMail代码,它在包装邮件头时不会插入选项卡。请向我展示您测试此代码的详细信息。我有两个应用程序服务器,as08和as09(每个应用程序服务器都有一个smtp服务器)。我在as08上调用发送电子邮件功能,然后检查邮件标题,发现邮件标题折叠。然后我在as09上调用发送电子邮件功能,检查邮件标题,发现邮件标题折叠并插入了一个“标签”。嗨,蒂乔德罗马,你知道哪个系统插入“标签”吗?如何配置它?JavaMail折叠方法:[link]
public void sendEmail(Request req) throws Exception {
  Session mailSession;
  MimeMessage msg;
  Properties mailSessionProp = new Properties();
  mailSessionProp.put("mail.smtp.host", "localhost");
  mailSessionProp.put("mail.smtp.port", "25");

  mailSession = Session.getInstance(mailSessionProp, null);
  msg = new MimeMessage(mailSession);
  msg.addRecipients("TO", InternetAddress.parse(req.getRecipientAddress()));
  msg.setSubject(MimeUtility.encodeText(req.getSubject(), "UTF-8", "B"));
  msg.setHeader("X-Mailer", "");
  msg.setSentDate(new Date());
  msg.setContent(req.getMessage(), req.getMessageContentType().getType());
  Transport.send(msg);
}
    Manifest-Version: 1.0
    Implementation-Version: 1.3.3_01
    Specification-Title: JavaMail(TM) API Design Specification
    Specification-Version: 1.3
    Extension-Name: javax.mail
    Created-By: 1.3.1 (Sun Microsystems Inc.)
    Implementation-Vendor-Id: com.sun
    Implementation-Vendor: Sun Microsystems, Inc.
    Specification-Vendor: Sun Microsystems, Inc.
    SCCS-ID: @(#)javamail.mf    1.5 02/03/14