예제 #1
0
        public void InitCredential()
        {
            _searchCondition = new SearchCondition();

            SearchCondition condition = null;

            if (!string.IsNullOrEmpty(Senders))
            {
                List <string> mSenders = Senders.Split(';').ToList();
                condition = SearchCondition.From(mSenders[0]);
                for (int i = 1; i < mSenders.Count; i++)
                {
                    string sender = mSenders[i];
                    if (string.IsNullOrEmpty(sender))
                    {
                        continue;
                    }

                    condition = condition.Or(SearchCondition.From(sender));
                }
            }

            SearchCondition conditionSubject = null;

            if (!string.IsNullOrEmpty(Subjects))
            {
                List <string> mSubjects = Subjects.Split(';').ToList();
                conditionSubject = SearchCondition.Subject(mSubjects[0]);
                for (int i = 1; i < mSubjects.Count; i++)
                {
                    string sub = mSubjects[i];
                    if (string.IsNullOrEmpty(sub))
                    {
                        continue;
                    }

                    conditionSubject = conditionSubject.Or(SearchCondition.Subject(sub));
                }
            }

            _searchCondition = SearchCondition.Unseen();

            if (condition != null)
            {
                _searchCondition = _searchCondition.And(condition);
            }

            if (conditionSubject != null)
            {
                _searchCondition = _searchCondition.And(conditionSubject);
            }

            try
            {
                if (_email != null)
                {
                    _email.Logout();
                }
            }
            catch
            {
            }

            try
            {
                if (!string.IsNullOrEmpty(Credential.UserName) && !string.IsNullOrEmpty(Credential.Host))
                {
                    _email = new ImapClient(Credential.Host, Credential.Port, Credential.UserName, Credential.Password, AuthMethod.Login, Credential.Ssl);
                }
            }
            catch (Exception ex)
            {
                Console.Write(ex.Message);
                throw ex;
            }
        }