From: Fred L. D. <fd...@us...> - 2001-10-25 04:22:13
|
Update of /cvsroot/grail/grail/src/ancillary In directory usw-pr-cvs1:/tmp/cvs-serv14638/ancillary Modified Files: MailDialog.py Log Message: Be more intelligent about interfacing with the MTA. This uses a configuration value if there is one, otherwise searches for the sendmail command in a couple of common locations. This closes SF patch #411432 (using a very different patch). Index: MailDialog.py =================================================================== RCS file: /cvsroot/grail/grail/src/ancillary/MailDialog.py,v retrieving revision 2.5 retrieving revision 2.6 diff -C2 -r2.5 -r2.6 *** MailDialog.py 1999/03/05 21:46:17 2.5 --- MailDialog.py 2001/10/25 04:22:10 2.6 *************** *** 24,28 **** --- 24,30 ---- from Context import LAST_CONTEXT + from grailbase import utils + COMMON_HEADERS = ( (0, "to"), *************** *** 39,43 **** SENDMAIL = "/usr/mmdf/bin/submit -mtlrxto,cc\'*\'s" # submit needs a Date: field or it will not include it ! COMMON_HEADERS = tuple(map(None, COMMON_HEADERS) + [(2, "date")]) TEMPLATE ="""\ To: %(to)s --- 41,45 ---- SENDMAIL = "/usr/mmdf/bin/submit -mtlrxto,cc\'*\'s" # submit needs a Date: field or it will not include it ! COMMON_HEADERS = COMMON_HEADERS + ((2, "date"),) TEMPLATE ="""\ To: %(to)s *************** *** 50,54 **** """ else: ! SENDMAIL = "/usr/lib/sendmail -t" # XXX TEMPLATE ="""\ To: %(to)s --- 52,56 ---- """ else: ! SENDMAIL = None TEMPLATE ="""\ To: %(to)s *************** *** 64,67 **** --- 66,86 ---- 'content-transfer-encoding', 'x-mailer', 'x-url'] + + def get_sendmail_cmd(): + """Return the appropriate command to submit mail to the MTA.""" + if SENDMAIL is not None: + return SENDMAIL + prefs = utils.get_grailapp().prefs + cmd = prefs.Get("helpers", "sendmail-command") + if not cmd: + for cmd in ("/usr/lib/sendmail", "/usr/sbin/sendmail"): + if os.path.isfile(cmd): + cmd = cmd + " -t" + break + else: + cmd = None + print "Mail command:", `cmd` + return cmd + class MailDialog: *************** *** 168,172 **** self.root.update_idletasks() if message[-1] != '\n': message = message + '\n' ! p = os.popen(SENDMAIL, 'w') p.write(message) sts = p.close() --- 187,191 ---- self.root.update_idletasks() if message[-1] != '\n': message = message + '\n' ! p = os.popen(get_sendmail_cmd(), 'w') p.write(message) sts = p.close() |