This can be scripted - have seen it done but no longer have access to those systems.
Basically, you will need to parse the /etc/security/passwd file. For each user stanza, there are 3 lines:
smith:
password = MGURSj.F056Dj
lastupdate = 623078865
flags = ADMIN,NOCHECK
Note: the flags line may be blank. IE: flags =
The lastupdate line is the date (in seconds) when the pw was last updated. You will need to decode this value and then apply whatever your password lifetime is to see if its about to expire. If so, send them (or someone else) an email.
While I dont have a script to do exaclty what you want, here is a perl script I hacked out a while back that converts the time from seconds (lastupdate is in seconds) to an actual date:
#!/bin/perl
#
#
if ($ARGV[0] eq "")
{ print "\n\nUsage: time <time - in seconds>\n\n";
print "IE ./time.pl 1001112970"
}
else
{$input_time=$ARGV[0]}
#
# Get and display current time
#
$curtime=time();
$curdate=localtime($curtime);
print "\ntoday in seconds = $curtime\n";
print "today = $curdate\n\n";
# Convert entered time from seconds to normal date format and display
#
$normal_date = localtime($input_time);
print "Entered seconds (in seconds) = $input_time\n";
print "Entered seconds = $normal_date\n";
PS: there are 86400 seconds in one day.