Well if it's a market that you want the timestamp associated with, I would do something like this:
ALTER TABLE markets ADD COLUMN last_mail_ts timestamp without time zone;
Or you could make it with time zone if you prefer.
To check if it's time for a mailout:
SELECT market, now() - last_mail_ts > '7 days'::interval AS its_time FROM markets;
Then each time you do a mailout:
UPDATE markets SET last_mail_ts = now() WHERE market = 'foomarket';
The other table I was talking about is just for logging, in case you want to look back and ask "When did i send mail to foomarket?". It would be something like:
CREATE TABLE market_email_log
(
mail_ts timestamp without time zone not null default now(),
market text not null,
);
You might add a primary key or maybe additional information about what was mailed out.