Skip to content

Conversation

@ZhongXiaoHong
Copy link

@ZhongXiaoHong ZhongXiaoHong commented Apr 15, 2022

there is a bug ,when i search subject with Chinese character such as “OA系统”. The log print :https://github.com/ZhongXiaoHong/mail/blob/master/bad_comand.txt
The reason for this is that the Chinese character “OA系统” is regarded as ASSCII when the program get the byte array.
see the source code: com.sun.mail.imap.protocol.SearchSequence#subject(SubjectTerm term, String charset)
protected Argument subject(SubjectTerm term, String charset) throws SearchException, IOException { Argument result = new Argument(); result.writeAtom("SUBJECT"); result.writeString(term.getPattern(), charset); return result; }

com.sun.mail.iap.Argument#writeString(java.lang.String, java.lang.String)

public Argument writeString(String s, String charset) throws UnsupportedEncodingException { if (charset == null) { this.writeString(s); } else { this.items.add(new AString(s.getBytes(charset))); } return this; }

com.sun.mail.iap.Argument#writeString(java.lang.String)

public Argument writeString(String s) { this.items.add(new AString(ASCIIUtility.getBytes(s))); return this; }

@jmehrens jmehrens changed the title fix Wrong charset used in creating search terms when server supports UTF8 Jan 23, 2024
@jmehrens
Copy link
Contributor

jmehrens commented Feb 15, 2024

This PR quotes UTF8 strings in SEARCH which, if I'm reading the RFC 3501 and RFC 6855 correctly is not allowed. If I modify the IMAPSearchTest I see:

B3 SEARCH SUBJECT "’系统" ALL

Author doesn't pass the Git ECA Validation Status. The branch is incorrect.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Wrong charset used in creating search terms when server supports UTF8

2 participants