Переместить письмо из списка почты по идентификатору - PullRequest
0 голосов
/ 11 декабря 2019

Мне нужно переместить письмо из списка из 5 писем, которые читает класс. Это письмо уже было обработано логическим образом, которое я создал, и соответствует условному. Проблема в том, что он перемещает эти 5 электронных писем, а некоторые не соответствуют условиям. Если почта, которая выполнила условие, может ввести данные в базу данных, ее необходимо переместить в папку обработанной почты, в противном случае ее необходимо переместить в папку ошибок.

Это класс, который получает электронные письма.

    int bufferLength = 5;
    int indiceMail = 0;
    string from = "mail@gmail.com>";
    do
        {
            emailList.getEmails(bufferLength);
        while(indiceMail<emailList.emails.Count)
        {
            indiceMail++;
        }
        Console.WriteLine("Reading: {0}", emailList.emails.Count);
    }while (emailList.MoreAvailable);

И это условие для перемещения писем

    string bodyMail = emailList.emails[indiceMail].body;
    match3 = Regex.Match(bodyMail, @"(?<=Status:) (\S+\b)");
    statuscompare = match3.Value;

    List<String> statusList = new List<string> { "i2", "i3", "i4", "i8" };
    bool ex = false;
    foreach (string item1 in statusList)
    {
        if (item1.Contains(statuscompare.Trim()))
        {
            ex = true;
            if (item1.Contains("i4"))
            {

                bool moveEmail = false;
                foreach (Email item in emailList.emails)
                {
                    if (emailList.emails[indiceMail].body.Contains("i4"))
                    {
                        // if (item.body.Contains(item1))
                        //{
                        moveEmail = true;
                        emailList.moveMail(item.id, emailList.config.PathSuccess);
                        break;
                        // }
                    }
                    if (moveEmail)
                    {
                        continue;
                    }
                }
            }
        }
    }

Это часть класса для перемещения писем

        public void moveMail(string emailId, string folderPath)
        {
            string folderId = getMailFolderId(folderPath);
            EmailMessage message = EmailMessage.Bind(service, emailId);
            message.Move(folderId);
        }
...