Well heres my PowerShell attempt. As Exchange 2007 is so boring, it just works, we stopped monitoring it, but we were getting worried that sometimes it had stopped working, where as in fact the complaining users (including me) had in fact received no mail.
So I wrote this scipt that logs some performance counters from the SMTP send and receive connectors and the sizes, in MB, of users mail boxes all redirected to a file call DailyFile.log. The file is ASCII as opposed to Unicode as I use a little utility (blat.exe) to e-mail the report to the administrators (Unicode didn't work).
The script is actually generated by a .CMD file and "echo...> file.ps1", the .CMD file being scheduled to run at 6am & 6pm.
I am sure someone could improve this, I am sure I saw a PowerShell e-mailer somewhere that talks to a SMTP port and the performance counter reading bit is a bit heavy....but it works and I know Exchange is working fine.
$c1 = new-object System.Diagnostics.PerformanceCounter("MSExchangeTransport SmtpReceive","Messages Received Total","from POP3 forwarder")
$c2 = new-object System.Diagnostics.PerformanceCounter("MSExchangeTransport SmtpSend","Messages Sent Total","to FastHosts")
$c3 = new-object System.Diagnostics.PerformanceCounter("MSExchangeTransport SmtpReceive","Bytes Received Total","from POP3 forwarder")
$c4 = new-object System.Diagnostics.PerformanceCounter("MSExchangeTransport SmtpReceive","Message Bytes Received Total","from POP3 forwarder")
$c5 = new-object System.Diagnostics.PerformanceCounter("MSExchangeTransport SmtpSend","Message Bytes Sent Total","to FastHosts")
$c1, $c2, $c3, $c4, $c5 | ft CounterName, RawValue -Autosize | out-file "dailyfile.log" -encoding ascii
Get-MailboxStatistics | select-object DisplayName, ItemCount, TotalItemSize | Sort-Object -property TotalItemSize -descending | ForEach-Object -process { $_.TotalItemSize = [system.math]::round(($_.TotalItemSize)/1024.0/1024.0, 2); $_ } | ft -autosize | out-file "dailyfile.log" -encoding ascii -append
exit