Good question - came up on the course yesterday and all the examples I could find were longwinded or obfursacted to avoid them abusing the email addresses of the people named.
At the risk of getting lots of people trying this out and filling my mail box, here is a sample piece of code that emails grom firstname.lastname@example.org to email@example.com in Python, with the subject line "greeting from here" and the body just saying "Hello World".
# Emailing from Python
from email.MIMEText import MIMEText
# Set up a MIMEText object (it's a dictionary)
msg = MIMEText("Hello World")
# You can use add_header or set headers directly ...
msg['Subject'] = 'greeting from here'
# Following headers are useful to show the email correctly
# in your recipient's email box, and to avoid being marked
# as spam. They are NOT essential to the snemail call later
msg['From'] = "Graham J Ellis "
msg['Reply-to'] = "Graham Ellis "
msg['To'] = "firstname.lastname@example.org"
# Establish an SMTP object and connect to your mail server
s = smtplib.SMTP()
# Send the email - real from, real to, extra headers and content ...
In our case, the machine I'm running the script on is not a mail server, so I've connected to a machine that is in the connect
method. And, before you try it out, please note that our outgoing mail server is not an open relay. In other words you will need to change that to your own outgoing mail machine - it won't work for you one mine. (written 2007-01-18)
Associated topics are indexed as below, or enter http://melksh.am/nnnn for individual articlesY115 - Additional Python Facilities 
Handling JSON in Python (and a csv, marshall and pickle comparison) - (2013-11-16) 
JSON from Python - first principles, easy example - (2013-05-13) 
Teaching dilemma - old tricks and techniques, or recent enhancements? - (2011-10-08) 
A demonstration of how many Python facilities work together - (2011-09-16) 
Python regular expressions - repeating, splitting, lookahead and lookbehind - (2010-12-17) 
Joining a MySQL table from within a Python program - (2010-06-02) 
Factory methods and SqLite in use in a Python teaching example - (2010-05-29) 
Running operating system commands from your Python program - (2010-05-14) 
Python decorators - your own, staticmethod and classmethod - (2010-05-14) 
Model - View - Controller demo, Sqlite - Python 3 - Qt4 - (2010-04-29) 
Connecting Python to sqlite and MySQL databases - (2010-04-28) 
Regular Expressions in Python - (2010-04-14) 
Python - what is going on around me? - (2010-02-28) 
Python - how it saves on compile time - (2009-10-20) 
Serialization - storing and reloading objects - (2009-10-04) 
Testing code in Python - doctest, unittest and others - (2009-09-16) 
Python Regular Expressions - (2008-11-08) 
A series of tyre damages - (2007-09-08) 
Ignore case in Regular Expression - (2007-09-08) 
Regular expressions made easy - building from components - (2007-08-16) 
Turning objects into something you can store - Pickling (Python) - (2007-04-15) 
Buffering output - why it is done and issues raised in Tcl, Perl, Python and PHP - (2007-04-06) 
Python - listing out the contents of all variables - (2006-10-21) 
Python 3000 - the next generation - (2006-06-09) 
Keeping your regular expressions simple - (2006-04-05) 
Python to MySQL - (2006-03-31) 
Splitting the difference - (2005-10-13) 
What and why for the epoch - (2005-03-08) 
Examples - Gadfly, NI Number, and Tcl to C interface - (2005-02-10) 
The elegance of Python - (2005-01-19)
Some other Articles
Maintainable code - some positive adviceBounce, bounce, bounceBang! Train campaign hits homeCall for appropriate train services - Swindon, Bristol, Bath, West Wilts, Severn Beach etcSending an email from PythonNested exceptions in PythonLearnt in London - Ruby, Martini, Coral and the CoreWhat the customer is looking for - effective trainingKnow to the policeImpact Engineering and Backscatter