Well still some certain company was still using SSL port 465 for their mail SMTP service.
following code is updated from book <Foundations of Python Network Programming>, changes just made for the old SSL supports.
New codes should use starttls as default TLS/SSL connection.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
#!/usr/bin/env python import sys, smtplib, socket from getpass import getpass if len(sys.argv) <4: print "Syntax %s server fromaddr toaddr [toaddr...]" % sys.argv[0] sys.exit(255) server = sys.argv[1] fromaddr = sys.argv[2] toaddrs = sys.argv[3:] message = """To: %s From: %s Subject: Test Message from smtp465.py Hello, This is a test file to try smtplib. -s """ % (', '.join(toaddrs), fromaddr) sys.stdout.write("Enter username: ") username= sys.stdin.readline().strip() password= getpass("Enter passcode: ") try: s=smtplib.SMTP_SSL(server,465) s.set_debuglevel(1) s.ehlo() try: s.login(username,password) except smtplib.SMTPException, e: print "Authentication failed:", e sys.exit(1) s.sendmail(fromaddr, toaddrs, message) except (socket.gaierror, socket.error, socket.herror, smtplib.SMTPException), e: print " *** your message may not have been sent! " print e sys.exit(2) else: print "Message successfully sent to %d recipient(s) " %len(toaddrs) |