diff --git a/server/mailserver/constant/constant.go b/server/mailserver/constant/constant.go index 99fc9cee..6e931f59 100644 --- a/server/mailserver/constant/constant.go +++ b/server/mailserver/constant/constant.go @@ -21,6 +21,7 @@ const ( INBOX_STATE_NONE = 0 INBOX_STATE_READ = 1 INBOX_STATE_DELETED = 2 + INBOX_STATE_RECEIVED = 3 ) const ( diff --git a/server/mailserver/player/player.go b/server/mailserver/player/player.go index 2b774464..de20b244 100644 --- a/server/mailserver/player/player.go +++ b/server/mailserver/player/player.go @@ -77,13 +77,16 @@ func (this *player) MarkMails(mails []common.Mail) error { mi.expireTime = m.GetExpireTime() this.inboxHash[mi.mailId] = mi } else if mi.state != constant.INBOX_STATE_NONE { - err := model.Inbox.Mark(this.GetAccountId(), m.GetMailId(), nowTime, m.GetExpireTime()) - if err != nil { - resultErr = err - break + if mi.state != constant.INBOX_STATE_DELETED && + mi.state != constant.INBOX_STATE_RECEIVED { + err := model.Inbox.Mark(this.GetAccountId(), m.GetMailId(), nowTime, m.GetExpireTime()) + if err != nil { + resultErr = err + break + } + mi.state = constant.INBOX_STATE_READ + mi.expireTime = m.GetExpireTime() } - mi.state = constant.INBOX_STATE_READ - mi.expireTime = m.GetExpireTime() } } }