Exchange can’t shrink the database. What it does when you delete a message is simply mark that space as available, or as we call it “white space” which it will reuse for the next message that comes along rather than growing again.
What you need to do is look through the event log for ID 1221. This will tell you how much of the database is “white space.” You can then run a defrag against the database to recover the space. Unfortunately, the defrag can not be done when the database is online. You have to dismount it to run it.
There are some excellent KB articles that explain the process. Look for ESEUTIL with the “/D” switch.
Expect the defrag process to take about one hour for every 2 or 3 GB. Your mileage may vary, depending on processor availability and disk speed.
This is a very common process. I usually end up defragging databases about once a year. It’s very simple and completely automated.