diff options
| author | viega | 1998-05-28 23:10:10 +0000 |
|---|---|---|
| committer | viega | 1998-05-28 23:10:10 +0000 |
| commit | 841012658402d50fe37950f503b11df64cc15427 (patch) | |
| tree | 326da8aca3ffb7682089154b6047fa96ba495c1f | |
| parent | 613a001b4794eed9e0135f0f1406bb27bc04faf8 (diff) | |
| download | mailman-841012658402d50fe37950f503b11df64cc15427.tar.gz mailman-841012658402d50fe37950f503b11df64cc15427.tar.zst mailman-841012658402d50fe37950f503b11df64cc15427.zip | |
Modified to use contact_transport instead of a sendmail command.
| -rwxr-xr-x | mail/deliver | 23 | ||||
| -rw-r--r-- | mail/dumb_deliver | 18 |
2 files changed, 14 insertions, 27 deletions
diff --git a/mail/deliver b/mail/deliver index 3ae53c677..e3ebef245 100755 --- a/mail/deliver +++ b/mail/deliver @@ -27,10 +27,10 @@ if not os.fork(): import string, sys, regsub import paths import mm_cfg - def CallSendmail(cmd, stdin): - file = os.popen(cmd, 'w') - file.write(stdin) - file.close() + def ContactTransport(sender, recip, filename): + os.execv(os.path.join(os.path.join(paths.prefix,"mail"), + "contact_transport") + [sender,tmp_file]+to_addrs) domain_info = {} def GroupByDomain(addr): @@ -70,29 +70,22 @@ if not os.fork(): groups.append(lastgroup) return groups - def CallSendmailForEachGroup(groups, sender, text): + def ContactTranportForEachGroup(sender, groups, file_name): for group in groups: if not os.fork(): - CallSendmail(mm_cfg.SENDMAIL_CMD % - (sender, string.join(group)), text) + ContactTransport(sender,group,file_name) os._exit(0) sender = sys.argv[2] spawns = eval(sys.argv[3]) + file_name = sys.argv[1] if spawns > mm_cfg.MAX_SPAWNS: spawns = mm_cfg.MAX_SPAWNS if spawns < 1: spawns = 1 to_list = sys.argv[4:] - try: - file = open(sys.argv[1], 'r') - except IOError, msg: - raise IOError, (msg[0], msg[1], sys.argv[1]) - text = file.read() - file.close() - os.unlink(sys.argv[1]) map(GroupByDomain, to_list) final_groups = BuildGroups(domain_info.values(), len(to_list)) - CallSendmailForEachGroup(final_groups, sender, text) + ContactTransportForEachGroup(sender, final_groups, file_name) diff --git a/mail/dumb_deliver b/mail/dumb_deliver index e9b6a6336..02cf90ef9 100644 --- a/mail/dumb_deliver +++ b/mail/dumb_deliver @@ -21,18 +21,12 @@ import os if not os.fork(): import string, sys - def CallSendmail(cmd, stdin): - file = os.popen(cmd, 'w') - file.write(stdin) - file.close() + def ContactTransport(sender, recip, filename): + os.execv(os.path.join(os.path.join(paths.prefix,"mail"), + "contact_transport") + [sender,tmp_file]+to_addrs) sender = sys.argv[2] to_list = sys.argv[3:] - file = open(sys.argv[1], 'r') - text = file.read() - file.close() - os.unlink(sys.argv[1]) - CallSendmail(SENDMAIL_CMD % (sender, string.join(to_list)), text) - - - + file _name sys.argv[1] + ContactTransport(sender, to_list, file_name) |
