fieldvalues [entry get(for entry in self hdrfieldsfromtoccsubj fieldvalues[: extrahdrs [('cc'cc)(' -mailer'appname (python)')extrahdrs +list(zip(self userhdrsfieldvalues[ :])bodytext self editor getalltext(split multiple recipient lists on ','fix empty fields tos self splitaddresses(tofor (ix(namevalue)in enumerate(extrahdrs)if valueignored if 'if value ='?'not replaced extrahdrs[ix(name''elif name lower(in ['cc''bcc']split on ',extrahdrs[ix(nameself splitaddresses(value)withdraw to disallow send during send caveatmight not be foolproof user may deiconify if icon visible self withdraw(self getpassword(if neededdon' run pop up in send threadpopup popuputil busyboxnowait(appname'sending message'sendingbusy incr(threadtools startthreadaction self sendmessageargs (fromtossubjextrahdrsbodytextself attachessavemailseparatorbodytextencodingattachesencodings)context (popup,)onexit self onsendexitonfail self onsendfaildef onsendexit(selfpopup)""erase wait windowerase view windowdecr send countsendmessage call auto saves sent message in local filecan' use window addsavedmailsmail text unavailable""popup quit(self destroy(sendingbusy decr(poss when openedin mailconfig sentname os path abspath(mailconfig sentmailfileif sentname in opensavefiles keys()window opensavefiles[sentnamewindow loadmailfilethread(also expands sent file openupdate list,raise def onsendfail(selfexc_infopopup)pop-up errorkeep msg window to save or retryredraw actions frame popup quit(self deiconify(self lift(showerror(appname'send failed\ % \ %sexc_info[: ]printstack(exc_info the pymailgui client