i have done this in two different ways. the first is straight forward, but depending on how many users you have, it might be a pain (and a security risk). the second works on the assumption that your ISP is running a sensible MTA (postfix, qmail) and that you will not be down for longer than 3 days.
(1) the router which handles the dial-up connection to the internet is also configured as a mail server, relaying mail for the internal subnet only. each user has a mail account on that system, which you make POP3 accessible. in my example, i actually have a separate mail server, but whatever. the canonical names are mail.home.madduck.net and smtp.home.madduck.net. now you block POP3 and SMTP at the router for all IPs (MAC addresses) other than the mail server. you tell your users to use these two mail servers exclusively (they won't succeed otherwise anyway). my relay server is running postfix, which i can configure to defer_transport for smtp. in /etc/ppp/ip-up.d, i have an mta-online script, which (1) calls sendmail -q, and (2) changes the defer_transport setting with postconf. /etc/ppp/ip-down.d reset that setting when the connection is down. i also have a crontab, connecting the system every hour. that's the SMTP side, and now users will think that mail is sent immediately, even though it will sit in the relay queue until (a) the next hour, or (b) someone connects the internal network (i am using diald for on-demand connection). the POP3 side of things is similar. while online, fetchmail retrieves all mail for the individual users, and stores them in their local accounts (daemon mode). in my scenario, i am [EMAIL PROTECTED], and while i can send to [EMAIL PROTECTED] - which will leave the house via SMTP, and eventually return via fetchmail, i can also send mail to [EMAIL PROTECTED], which is delivered locally immediately. (2) the second method i like a whole lot better. postfix and qmail, unlike e.g. micro$oft exchange, do an IP lookup on the MX on *every* delivery attempt, not just once. therefore i configured my home router to update a remote Bind 9 server via TSEC nsupdate within a zone that has a TTL of 2 minutes. therefore, home.madduck.net points to the router's ippp0 interface whenever it is online. the ISP's postfix is configured to send mail e.g. for [EMAIL PROTECTED] to [EMAIL PROTECTED], and [EMAIL PROTECTED] to [EMAIL PROTECTED] whenever the router is online, mail is delivered immediately. if the router is offline, mail sits in the ISP's queue for at most five days before it is bounced. i have at least 1 connect a day due to the debian_mirror rsync script i run, and other similar stuff, and when the router is online, it contacts the ISP with an ETRN SMTP command (fetchmail can do that), causing all queued mail to be delivered immediately. i like this approach a lot better, and if you wish, i can provide you with a TSEC nsupdatable hostname. outgoing SMTP is handled just like the above. i told my users that mail goes out every hour, but if something is urgent, all they need to do is surf the web afterwards for the mail to be sent. everything nowadays seems to be dynamic, so even the extensive squid proxy i use won't prevent a connection whenever someone opens IE (barf!). i hope this was complete. i'll be happy to answer any questions... martin; (greetings from the heart of the sun.) \____ echo mailto: !#^."<*>"|tr "<*> mailto:" [EMAIL PROTECTED] -- i'd give my right arm to be ambidextrous.