public void TestSendContinuationRequest() { var command = new ImapCommand(null, "ignored", "xxxxxxxx"); Assert.AreEqual("xxxxxxxx\r\n", SendCommand(command)); }
public void TestSendCommandNoArguments() { var command = new ImapCommand("NOOP", "0001"); Assert.AreEqual("0001 NOOP\r\n", SendCommand(command)); }
public void TestSendCommandContainsSynchronizingLiteral() { var command = new ImapCommand("SEARCH", "0001", "FROM", new ImapLiteralString("from", Encoding.ASCII, ImapLiteralOptions.Synchronizing)); Assert.AreEqual("0001 SEARCH FROM {4}\r\nfrom\r\n", SendCommand(command)); }
public void TestSendCommand() { var command = new ImapCommand("login", "0001", "username", "password"); Assert.AreEqual("0001 login username password\r\n", SendCommand(command)); }
private string SendCommand(ImapCommand command) { baseStream.Seek(0, SeekOrigin.Begin); sender.Send(command); while (sender.CommandContinuing) { sender.Send(); } baseStream.Seek(0, SeekOrigin.Begin); var reader = new StreamReader(baseStream, NetworkTransferEncoding.Transfer8Bit); return reader.ReadToEnd(); }
public void Send(ImapCommand command) { ClearUnsent(); var argCount = command.Arguments.Length + (command.CommandString == null ? 0 : 2); var argIndex = 0; var args = new ImapString[argCount]; if (command.CommandString != null) { args[argIndex++] = command.Tag; args[argIndex++] = command.CommandString; } for (var i = 0; i < command.Arguments.Length; i++, argIndex++) { args[argIndex] = command.Arguments[i]; } Enqueue(args); Enqueue(Smdn.Formats.Octets.CRLF); Send(); }
public SendCommandContext(ImapCommand command) { this.Command = command; this.Sent = false; }
public ICommandContinuationContext SendCommand(ImapCommand command) { return SendCommand(new SendCommandContext(command)); }
public ImapCommand CreateCommand(string command, params ImapString[] arguments) { var comm = new ImapCommand(command, Interlocked.Increment(ref commandTag).ToString("x4"), arguments); Interlocked.CompareExchange(ref commandTag, 0, 0x10000); return comm; }