On 24/01/07, py <[EMAIL PROTECTED]> wrote:
> I would love for anybody to comment on this code with regard to
> redundancy/efficiency/wordiness or whatever else.
> for instance, do i understand correctly that i cant have a try: else: without
> an intervening except:?
> -dave
>
> stdout.write("calling smtp server...")
> try:
> server = SMTP(msgsmtp)
> except:
> stdout.write("FAIL.") #using .write to avoid the implied \n
> with print
> else:
> server.set_debuglevel(msgdebug)
> stdout.write("starting tls...")
> server.ehlo(msgfrom)
> try: server.starttls()
> except: stdout.write("FAIL.")
> else:
> server.ehlo(msgfrom) #neessary duplication (?)
> stdout.write("logging in...")
> try: server.login(msgfrom, msgpass)
> except: stdout.write("FAIL.")
> else:
> stdout.write("sending...")
> try: server.sendmail(msgfrom, msgto, msgtxt + "\n.\n")
> except: stdout.write("FAIL.")
> else:
> try:
> server.quit()
> except sslerror: # a known and largely ignored
> issue with early EOF in ssl protocol
> stdout.write("success.")
> else:
> stdout.write("success.")
> --
*** Not tested but should have the same functionality and error
handling as your script ***
this_host = 'myhostname.mydom1.com'
print "calling smtp server...", # the trailing comma removes '\n'
try:
server = smtplib.SMTP(msgsmtp,local_hostname=this_host)
server.set_debuglevel(msgdebug)
print "starting tls...",
server.starttls()
server.ehlo(this_host) # RFC requirement for 2nd EHLO after requesting TLS
print "logging in...",
server.login(msgfrom, msgpass)
print "sending...",
failed = server.sendmail(msgfrom, msgto, msgtxt + "\n.\n")
try:
server.quit()
except: pass
print "success."
except:
print "FAIL.",
if failed:
print "failed:", failed # some recipients, but not all of them, failed
--
http://mail.python.org/mailman/listinfo/python-list