Пример #1
0
        private static FetchDataItem CreateFlagDateItem(MailMessage mail)
        {
            FetchDataItem item = new FetchDataItem(FetchDataItemType.Flags);

            item.Text = CreateFlaggedString(mail);
            return(item);
        }
Пример #2
0
        private FetchDataItem CreateMailBodyDataItem(MailMessage mail)
        {
            FetchDataItem item = new FetchDataItem(FetchDataItemType.Body);

            string mailEnvelope = MSGorillaMailGenerator.CreateTextMessageMail(mail.MSGorillaMessageID, this.User);

            StringBuilder sb = new StringBuilder("{");

            sb.Append(mailEnvelope.Length);
            sb.Append("}\r\n");

            sb.Append(mailEnvelope);
            //sb.Append("\r\n");

            item.Text = sb.ToString();
            //Console.WriteLine("================={0}=======================", item.Text.Length);
            return(item);
        }
Пример #3
0
        private FetchResponse Fetch(MailMessage mail, FetchDataList fetchDataList)
        {
            FetchResponse response = new FetchResponse(mail.SequenceNumber);

            FetchDataItem body = null;

            foreach (var data in fetchDataList)
            {
                switch (data)
                {
                case FetchDataItemType.All:
                    break;

                case FetchDataItemType.Body:
                    if (body == null)
                    {
                        body = CreateMailBodyDataItem(mail);
                    }
                    break;

                case FetchDataItemType.BodyPeek:
                    if (body == null)
                    {
                        body = CreateMailBodyDataItem(mail);
                    }
                    break;

                case FetchDataItemType.BodyStructure:
                    break;

                case FetchDataItemType.Envelope:
                    break;

                case FetchDataItemType.Fast:
                    break;

                case FetchDataItemType.Flags:
                    response.Items.Add(new FetchDataItem(FetchDataItemType.Flags, CreateFlaggedString(mail)));
                    break;

                case FetchDataItemType.Full:
                    break;

                case FetchDataItemType.InternalDate:
                    response.Items.Add(
                        new FetchDataItem(
                            FetchDataItemType.InternalDate,
                            string.Format("\"{0:d-MMM-yyyy HH:mm:ss} {1}\"", mail.Timestamp, mail.Timestamp.ToString("zzz").Replace(":", ""))
                            )
                        );
                    break;

                case FetchDataItemType.Rfc822:
                    break;

                case FetchDataItemType.Rfc822Header:
                    break;

                case FetchDataItemType.Rfc822Size:
                    response.Items.Add(new FetchDataItem(FetchDataItemType.Rfc822Size, mail.Size.ToString()));
                    break;

                case FetchDataItemType.Rfc822Text:
                    break;

                case FetchDataItemType.Uid:
                    response.Items.Add(new FetchDataItem(FetchDataItemType.Uid, mail.Uid.ToString()));
                    break;

                default:
                    break;
                }
            }
            //put the BODY[] item to the last
            if (body != null)
            {
                response.Items.Add(body);
            }
            return(response);
        }