/// <summary>
        /// Execute the Symbols command
        /// </summary>
        /// <param name="e"></param>
        /// <returns></returns>
        public SpamAssassinSymbolsResult ExecuteSymbols(SpamAssassinSymbolsArgs e)
        {
            string[] additionalLines;
            var      result         = new SpamAssassinSymbolsResult();
            var      responsePacket = SendMessageEx(SpamAssassinCommands.Symbols, PrepareCheckRequestMessage(e));

            CheckThrowResponsePacket(responsePacket);
            InterpretCheckResponseMessage(responsePacket.Message, out additionalLines, result);

            // Remove empty line at the beginning.
            additionalLines = SplitLines(JoinLines(additionalLines));

            result.SymbolLines = additionalLines[0].Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries);

            return(result);
        }
        /// <summary>
        /// Execute the Symbols command
        /// </summary>
        /// <param name="e"></param>
        /// <returns></returns>
        public SpamAssassinSymbolsResult ExecuteSymbols(SpamAssassinSymbolsArgs e)
        {
            string[] additionalLines;
            var result = new SpamAssassinSymbolsResult();
            var responsePacket = SendMessageEx(SpamAssassinCommands.Symbols, PrepareCheckRequestMessage(e));

            CheckThrowResponsePacket(responsePacket);
            InterpretCheckResponseMessage(responsePacket.Message, out additionalLines, result);

            // Remove empty line at the beginning.
            additionalLines = SplitLines(JoinLines(additionalLines));

            result.SymbolLines = additionalLines[0].Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries);

            return result;
        }