from email.MIMEText import MIMEText from email import Utils import socket def send_recv( sock, msg ): print msg sock.send( msg+'\r\n' ) try: r = sock.recv(1024) print r except socket.timeout, e: print "Socket Timeout - %s\n" % str(e) def smtpSocket( server, domain, msg ): s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) s.settimeout( 5 ) try: s.connect( server ) r = s.recv(1024) print r except socket.timeout, e: print "Socket Timeout - %s\n" % str(e) return send_recv( s,'HELO ' + domain ) mFrom = "MAIL From:<%s>" % msg['From'] send_recv( s, mFrom ) mRcpt = "RCPT To:<%s>" % msg['To'] send_recv( s, mRcpt ) send_recv( s, 'DATA' ) send_recv( s, msg.as_string()+'\r\n.' ) send_recv( s, 'QUIT' ) s.close() message = """Hello, This is a test message. -- Tim""" msg = MIMEText( message ) msg[ 'To' ] = 'you@home' msg[ 'From' ] = 'me@school' msg[ 'Subject' ] = 'Testing Python e-mail' msg[ 'Date' ] = Utils.formatdate(localtime = 1) msg[ 'Message-ID' ] = Utils.make_msgid() server = ( 'localhost', 8025 ) domain = 'localhost' ##server = ( 'smtp.central.cox.net', 25 ) ##domain = 'cox.net' ##server = ( 'postman.sal.ksu.edu', 25 ) #domain = 'sal.ksu.edu' smtpSocket( server, domain, msg )