Just a short notice to show how simple it is to send mail from Python using the SMTP module. Note: you must have an accessible SMTP server running somewhere. I have one on my domain, but word on the street says that if you ask nicely, your ISP can provide you with one.
Anyway, here is the code:
from smtplib import SMTP
import datetime
debuglevel = 0
smtp = SMTP()
smtp.set_debuglevel(debuglevel)
smtp.connect('YOUR.MAIL.SERVER', 26)
smtp.login('USERNAME@DOMAIN', 'PASSWORD')
from_addr = "John Doe <john@doe.net>"
to_addr = "foo@bar.com"
subj = "hello"
date = datetime.datetime.now().strftime( "%d/%m/%Y %H:%M" )
message_text = "Hello\\nThis is a mail from your server\\n\\nBye\\n"
msg = "From: %s\\nTo: %s\\nSubject: %s\\nDate: %s\\n\\n%s" \
% ( from_addr, to_addr, subj, date, message_text )
smtp.sendmail(from_addr, to_addr, msg)
smtp.quit()
Some notes:
- You'll have to insert your mail server and SMTP port. Note that the port can also be 25 (or any other, if you've configured the server appropriately)
- At least on my server, the username must be the full email address
- The message must contain all these fields to be accepted
- Set debuglevel to 1 to see lots of insightful debugging information from the module