/// <summary>examines a mailbox.</summary> /// <param name="mailboxName">Name of the mailbox.</param> /// <returns></returns> /// <exception cref="System.Exception"></exception> public ImapMailboxInfo Examine(string mailboxName) { var mailbox = UTF7.EncodeExtendedUTF7(mailboxName); var answer = SendCommand("EXAMINE \"" + mailbox + "\""); if (!answer.Success) { throw new Exception(string.Format("Error at examine mailbox {0}: {1}", mailboxName, answer.Result)); } return(ImapMailboxInfo.FromAnswer(mailboxName, answer)); }
/// <summary>Selects the mailbox with the specified name.</summary> /// <param name="mailboxName">Name of the mailbox.</param> /// <returns></returns> /// <exception cref="System.Exception"></exception> public ImapMailboxInfo Select(string mailboxName) { var mailbox = UTF7.EncodeExtendedUTF7(mailboxName); var answer = SendCommand("SELECT \"{0}\"", mailbox); if (!answer.Success) { throw new Exception(string.Format("Error at select mailbox {0}: {1}", mailboxName, answer.Result)); } SelectedMailbox = ImapMailboxInfo.FromAnswer(mailboxName, answer); return(SelectedMailbox); }
/// <summary>Obtains a list of all present mailboxes.</summary> /// <returns></returns> public string[] ListMailboxes() { var list = new List <string>(); var answer = SendCommand("LIST \"\" *"); foreach (var line in answer.GetDataLines()) { if (line.StartsWith("* LIST ")) { var parts = ImapParser.SplitAnswer(line); var mailbox = parts[4].UnboxText(false); mailbox = UTF7.DecodeExtendedUTF7(mailbox); list.Add(mailbox); } } return(list.ToArray()); }
/// <summary>Uploads a message to the specified mailbox.</summary> /// <param name="mailboxName">Name of the mailbox.</param> /// <param name="messageData">The message data.</param> /// <exception cref="System.ArgumentNullException">messageData.</exception> public void UploadMessageData(string mailboxName, byte[] messageData) { var mailbox = UTF7.EncodeExtendedUTF7(mailboxName); if (messageData == null) { throw new ArgumentNullException(nameof(messageData)); } var id = PrepareLiteralDataCommand("APPEND \"" + mailbox + "\" (\\Seen) {" + messageData.Length + "}"); var writer = new DataWriter(stream); writer.Write(messageData); writer.Write((byte)13); writer.Write((byte)10); writer.Flush(); ReadAnswer(id, true); }
public static byte[] StringToBytes(string aString, WebSocketTypeEncoding aEncoding) { try { byte[] lData = null; switch (aEncoding) { #if !WINDOWS_PHONE case WebSocketTypeEncoding.ASCII: lData = ASCIIEncoding.ASCII.GetBytes(aString); break; case WebSocketTypeEncoding.UTF32: lData = ASCIIEncoding.UTF32.GetBytes(aString); break; case WebSocketTypeEncoding.UTF7: lData = System.Text.Encoding..UTF7.GetBytes(aString); break; #endif case WebSocketTypeEncoding.UTF8: lData = System.Text.Encoding.UTF8.GetBytes(aString); break; case WebSocketTypeEncoding.Unicode: lData = System.Text.Encoding.Unicode.GetBytes(aString); break; default: #if !WINDOWS_PHONE lData = ASCIIEncoding.Default.GetBytes(aString); #else lData = System.Text.Encoding.UTF8.GetBytes(aString); #endif break; } return(lData); } catch (Exception lEx) { throw new Exception("invalid converting : " + lEx.Message); } }