Well - tbh - it depends how your database is structured.
I generally make a datetime field within the database, and then when checking the timeframe, I let SQL do all the work for me (cos it's normally easier than writing a lot more code to do it in PHP), so I have less PHP to do. MySQL has a handy little function called UNIX_TIMESTAMP, which returns a number representing the number of seconds which have passed since some time in 1970 (ish)
So - imagine our table (tabUsers) with three columns - user, pwd, and lastsendtime.
Our SQL would then look something like
SELECT * FROM tabUsers WHERE (lastsendtime = NULL) OR UNIX_TIMESTAMP(lastsendtime) < (UNIX_TIMESTAMP(now()) - 259200) AND user='fred'
So - this attempts to select fred's record as long as a password wasn't sent within the last 72 hours (259200 is the number of seconds in 72 hours).
So - if you know 'fred' exists then a record will only be returned if he hasn't had a mail within the last 72 hours. We have to do the NULL check just to make sure that if it is NULL, then a mail will still be sent out to that person (easier than trying to play around and find out what SQL will actually return for this case!).
So - all you then have to do in PHP is select that QUERY and see if any results are returned!