所有
最近,我正在为我们公司建立一个邮件系统。
这里我在处理邮件附件名称编码方面遇到了一些问题。
问题是在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”名称再次出现......
我的问题是:有什么方法可以检测出我的客户接受哪种协议?所以我可以选择我可以使用哪种编码功能...