Unless your clients are accessing the Exchange server using POP or IMAP, all of the client <--> server communication happens on TCP port 135. Unfortunately, TCP port 135 is used by all Windows OSes and is not unique to Exchange (so its availability isn't an indication of mailbox availability).
If you wanted to get creative, you could try to monitor the state of the Exchange services using SNMP or WMI. This would require you to send a "raw" request from the script. The raw data would have to be captured from a sniffer.
You can find some good examples of sending raw data in script keepalives here:
Introduction This article will help you understand the steps on how to
download the UCS licenses from the Cisco Systems website and then
installing it on the UCS. The redacted (blue lines) just covers up
certain numbers for privacy please do not take them...
Introduction This article will help you understand and educate the
customer on how to clear their "expired licenses"
(license-graceperiod-expired) from their UCS-M. If a customer just
purchased a license and needs a step by step guide on how to download
Introduction Prepositioning is a powerful tools on the WAAS platform but
it is not always easy to figure out why your jobs are failing when
trying to retrieve the files.Here is a method that should help you to
figure out the reason why they are not succes...