summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorviega1998-05-28 23:10:10 +0000
committerviega1998-05-28 23:10:10 +0000
commit841012658402d50fe37950f503b11df64cc15427 (patch)
tree326da8aca3ffb7682089154b6047fa96ba495c1f
parent613a001b4794eed9e0135f0f1406bb27bc04faf8 (diff)
downloadmailman-841012658402d50fe37950f503b11df64cc15427.tar.gz
mailman-841012658402d50fe37950f503b11df64cc15427.tar.zst
mailman-841012658402d50fe37950f503b11df64cc15427.zip
Modified to use contact_transport instead of a sendmail command.
-rwxr-xr-xmail/deliver23
-rw-r--r--mail/dumb_deliver18
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)