Email using Ethernet Shield?

I don't have an arduino sketch, but here is a sample telnet session where I talk to the SMTP server directly. Stuff in blue is the response from the server, red is what I send. Green is just telnet session overhead.

Note the SMTP responses are 3 digit codes followed by explanatory text. You can probably write a very robust client by interpreting the numbers and ignoring all the following text (which makes arduino the code simpler).

Note this in no way addresses the authentication you may have to do, but it would be handled similarly.

It also doesn't address any encrypted links (e.g. TLS) which would be practically impossible on an arduino.

-j

[color=#00ff00]$ telnet smtp.eng.uah.edu 25
Trying 146.229.162.18...
Connected to mercury.eng.uah.edu.
Escape character is '^]'.[/color]
[color=#0000ff]220 eng.uah.edu ESMTP Sendmail 8.13.8+Sun/8.13.8; Wed, 12 Aug 2009 16:04:25 -0500 (CDT)[/color]
[color=#ff0000]HELO eng.uah.edu[/color]
[color=#0000ff]250 eng.uah.edu Hello flat-mac [1.2.3.4], pleased to meet you[/color]
[color=#ff0000]MAIL From:<auser@eng.uah.edu>[/color]
[color=#0000ff]250 2.1.0 <auser@eng.uah.edu>... Sender ok[/color]
[color=#ff0000]RCPT To:<otheruser@eng.uah.edu>[/color]
[color=#0000ff]250 2.1.5 < otheruser@eng.uah.edu>... Recipient ok[/color]
[color=#ff0000]DATA[/color]
[color=#0000ff]354 Enter mail, end with "." on a line by itself[/color]
[color=#ff0000]Subject: my message

did you notice that the subject is part of the text?  
.[/color]
[color=#0000ff]250 2.0.0 n7CL4PA0007387 Message accepted for delivery[/color]
[color=#ff0000]QUIT[/color]
[color=#0000ff]221 2.0.0 eng.uah.edu closing connection[/color]
[color=#00ff00]Connection closed by foreign host.
$ [/color]