Beispiel #1
0
        private void DeleteEmails()
        {
            foreach (var account in LoadAccounts())
            {
                _logger.InfoFormat("Deleting emails from account: {0}", account.User);
                using (var client = new Pop3())
                {
                    client.Connect(_popHost, _popPort, _popUseSsl);
                    client.UseBestLogin(account.User, account.Password);

                    var stats = client.GetAccountStat();

                    long loopLimit = _batchSizePerAccount;
                    if (stats.MessageCount < loopLimit)
                        loopLimit = stats.MessageCount;

                    for (var i = 1; i <= loopLimit; i++)
                    {
                        var email = new MailBuilder().CreateFromEml(client.GetMessageByNumber(i));

                        if(email.Date.HasValue && 
                            DateTime.Now.Subtract(email.Date.Value).TotalDays > _deleteEmailsOlderThanDays)
                        {
                            client.DeleteMessageByNumber(i);
                        }
                    }
                }
            }
        }