limitationshere is what one of those link lines looks likereformatted with line breaks and spaces to make it easier to understand< href="onviewlistlink pypswd=wtgmpsjeb mnum= user=pp % learning-python comsite=pop secureserver net">view among our weapons are these cardinal@hotmail com fri may : pymailcgi generates relative minimal urls (server and pathname values come from the prior pageunless set in commonhtmlclicking on the word view in the hyperlink rendered from this html code triggers the onviewlistlink script as usualpassing it all the parameters embedded at the end of the urlthe pop usernamethe pop message number of the message associated with this linkand the pop password and site information these values will be available in the object returned by cgi fieldstorage in the next script run note that the mnum pop message number parameter differs in each link because each opens different message when clicked and that the text after comes from message headers extracted by the mailtools packageusing the email package the commonhtml module escapes all of the link parameters with the urllib parse modulenot cgi escapebecause they are part of url this can matter in the pswd password parameter--its value might be encrypted and arbitrary bytesbut urllib parse additionally escapes nonsafe characters in the encrypted string per url convention (it translates to %xx character sequencesit' ok if the encryptor yields odd--even nonprintable--characters because url encoding makes them legible for transmission when the password reaches the next scriptcgi fieldstorage undoes url escape sequencesleaving the encrypted password string without escapes it' instructive to see how commonhtml builds up the stateful link parameters earlierwe learned how to use the urllib parse quote_plus call to escape string for inclusion in urlsreading pop email