notice that there are no usernames or passwords to be found hereas we saw in smtp usually requires only server that listens on the smtp portnot user account or password as we also saw in that smtp send operations that fail either raise python exception ( if the server host can' be reachedor return dictionary of failed recipientsour mailtools package modules insulate us from these details by always raising an exception in either case error pages if there is problem during mail deliverywe get an error page such as the one shown in figure - this page reflects failed recipient and includes stack trace generated by the standard library' traceback module on errors python detectsthe python error message and extra details would be displayed it' also worth pointing out that the commonhtml module encapsulates the generation of both the confirmation and the error pages so that all such pages look the same in pymailcgi no matter where and when they are produced logic that generates the mail edit page in commonhtml is reused by the reply and forward actionstoo (but with different mail headerscommon look-and-feel in factcommonhtml makes all pages look similar--it also provides common page header (topand footer (bottomgeneration functionswhich are used everywhere in the system you may have already noticed that all the pages so far follow the same patternthey start with title and horizontal rulehave something unique in the middleand end with another rulefollowed by python icon and link at the bottom this common look-and-feel is the product of shared code in commonhtmlit generates everything but the middle section for every page in the system (except the root pagea static html file the pymailcgi server