나는 C#에서 내 자신의 Imap 라이브러리를 만들려고하고 있으며 지금까지 내가 시도한 모든 것을 (연결, 로그인, 목록, 선택, 가져 오기 등) 할 수있었습니다.IMAP 다중 단어 사서함 선택
그러나 이름에 여러 단어가 포함 된 사서함을 선택하는 데 문제가 있습니다.
예를 들어 "새 레이블"이라는 사서함 이름은 선택할 수 없지만 "받은 편지함"은 성공적으로 선택됩니다.
0002 LIST "" "%"
* LIST (\HasNoChildren) "/" "INBOX"
* LIST (\HasNoChildren) "/" "New"
* LIST (\HasNoChildren) "/" "New Label"
* LIST (\HasChildren \Noselect) "/" "[Gmail]"
0002 OK Success
0003 SELECT INBOX
0003 OK [READ-WRITE] INBOX selected. (Success)
0004 SELECT New Label
0004 BAD Could not parse command
IMAP는 사양 (RFC 3501 5.1 사서함 이름 지정)이이 치료 방법을 참조하지 않습니다. 그것은 5.1.3이라는 이름의 국제적 언급을 언급하고 있지만, US-ASCII 인쇄 가능한 문자는 그 자체를 나타냅니다.
this question에 대한 대답은 사서함 이름을 공백과 함께 보내야한다는 것을 보여 줬지만 내 경우에는 분명히 작동하지 않습니다.
public ResponseStatusEnum sendCommandReceiveResponse(out List<String> responseArray, string command, params string[] cmdParams)
{
ResponseStatusEnum response;
if (command == null) throw new Exception("No command passed in to send to the server");
// Increment the id before getting the id string
m_nCommandId++;
StringBuilder sbCommand = new StringBuilder(CommandId + " ");
// Include the Imap command
sbCommand.Append(command);
//Include the parameters specific to the command
for (int i = 0; i < cmdParams.Length; i++)
{
sbCommand.Append(" " + cmdParams[i]);
}
sbCommand.Append(ImapEol);
감사합니다. 질문을하기 전에 구문 섹션을 읽어 보겠습니다. 나는 아주 기본적인 일을하고있다. (그리고 나는 IMAP에 익숙해 져야한다.) 그래서 나는 도서관에 가지 않기로 결정했다. – havan
나는 당신이 그런 일을하고있을 거라고 생각했다. Mailkit의 소스 코드도 흥미로울 것입니다. C#이며 잘 쓰여졌습니다. – arnt
Fwiw, MailKit의 소스 코드는 https://github.com/jstedfast/MailKit에서 찾을 수 있습니다. – jstedfast