由于RFC 2047和2047之前的差异,邮件附件名称在javamail中的编码问题

时间:2017-07-26 06:51:20

标签: email javamail

所有

最近,我正在为我们公司建立一个邮件系统。

这里我在处理邮件附件名称编码方面遇到了一些问题。

问题是在RFC-2047之前的协议中,编码字符串的大小应小于75字节,这是java邮件默认执行的操作。

doEncode(string, b64, jcharset, 
 // As per RFC 2047, size of an encoded string should not
 // exceed 75 bytes.
 // 7 = size of "=?", '?', 'B'/'Q', '?', "?="
 75 - 7 - charset.length(), // the available space
 "=?" + charset + "?" + encoding + "?", // prefix
 true, encodingWord, outb);

但我们的一些客户不承认这种附件'名称

附件的名称类似于

=?UTF-8?B?ABCDEFG=?=

所以,我手动编写一个函数对它们进行编码,而不将它们分成小于70字节的字符串

再次......

我们的其他一些客户无法识别我们的附件名称,并且“UTF-8”名称再次出现......

我的问题是:有什么方法可以检测出我的客户接受哪种协议?所以我可以选择我可以使用哪种编码功能...

0 个答案:

没有答案