Before I go any further, I should note I have not done this with e-smith, so this is only a clue for you.
Yes, Phil's response is the first step. You need to have the DNS records for your domain set to have a secondary (lower priority) MX record pointing to your friend's machine (and vice-versa). You should get the backend mechanics (below) running before doing the DNS/MX change.
The next step (much trickier as there is no admin screen in e-smith for this) is to configure the SMTP in your box to "accept for relay" mail destined for your friend's domain (and, of course, vice-versa on his box). It probably is not all that difficult, I did this with sendmail quite easily some time back.
The rest is pretty automatic. For example, if your machine is inaccessible (dsl down or whatever) incoming mail will go to your friend's machine. His machine will store it and continuously try to deliver it to your box. When your box becomes available again, your friend's box will succeed and deliver the mail. There might be some delay (due to backoff algorithms) but it should get through within an hour or two (depenidng on how long you have been down). Generally (configurable), it will try for 5 days before bouncing the mail back to the sender.
That should do it. You can test it by setting your mail client to use your friend's box as it's SMTP and send yourself an email (and, once again, vice-versa). You can test this "by hand" too by telnetting to port 25 on his box, but that involves knowledge of the SMTP protocol (surprisingly simple). The manual method is preferred as you will see any errors (like "relaying denied"). See bottom of this note for a sample manual smtp session.
To be honest, I have lost track of how exactly the SMTP stuff is setup in e-smith since changes in 4.1. It is now a somewhat complicated combination of obtuse and qmail, but I think obtuse is what you need to configure to allow the relaying.
Hope this helps! JP
Sample manual SMTP session (telnet to port 25 on your firends machine). Stuff preceded with a number are responses from the server. Stuff NOT preceded by a number is what I entered:
220
www.e-smith.jrp2.dyndns.org SMTP daemon ready.
helo jrp2.net
250
www.e-smith.jrp2.dyndns.org pleased to meet you, jrp2.net
mail from:
250 sender is , sender OK
rcpt to:
250 recipient , recipient OK
data
354 OK End with .
just another test to ignore!
.
250 Message accepted for delivery
quit
221 Closing connection
The above sent a mail from lists@jrp2.net to vpcm@yahoo.com with the text "just another test to ignore". It will not be a fully formatted email, but it should get through and will test the relaying config quite nicely. If your relaying is NOT setup correctly you will get some type of error after the rcpt command.