tags 446160 + patch
thanks

The attached patch adds support for directly invoking an MDA.  It adds
a new configuration option "MDA" to config.py, which defaults to None.
If set to a list of strings, rss2email will invoke that program with
arguments as a mail delivery agent, and feed it the email.  For
instance, I use:

MDA = ["/usr/lib/dovecot/deliver", "-e"]

Note that I renamed the global function list() to list_feeds(), to
avoid conflicting with the Python builtin list() constructor.

- Josh Triplett

-- System Information:
Debian Release: lenny/sid
  APT prefers unstable
  APT policy: (500, 'unstable')
Architecture: amd64 (x86_64)

Kernel: Linux 2.6.22-3-amd64 (SMP w/4 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash

Versions of packages rss2email depends on:
ii  python                        2.4.4-6    An interactive high-level object-o
ii  python-feedparser             4.1-9      Universal Feed Parser for Python
ii  python-support                0.7.5      automated rebuilding support for p

rss2email recommends no packages.

-- no debconf information
diff -Naur rss2email-2.60.orig/config.py rss2email-2.60/config.py
--- rss2email-2.60.orig/config.py       2007-11-11 22:18:35.000000000 -0800
+++ rss2email-2.60/config.py    2007-11-11 22:33:51.000000000 -0800
@@ -47,6 +47,10 @@
 SMTP_USER = ' username'  # for SMTP AUTH, set SMTP username here
 SMTP_PASS = 'password'  # for SMTP AUTH, set SMTP password here
 
+# Set this to a list of strings to deliver mail with the specified MDA
+# (with arguments).
+MDA = None
+
 # Set this to add a bonus header to all emails (start with '\n').
 BONUS_HEADER = ''
 # Example: BONUS_HEADER = '\nApproved: [EMAIL PROTECTED]'
diff -Naur rss2email-2.60.orig/rss2email.py rss2email-2.60/rss2email.py
--- rss2email-2.60.orig/rss2email.py    2007-11-11 22:18:35.000000000 -0800
+++ rss2email-2.60/rss2email.py 2007-11-11 23:39:56.000000000 -0800
@@ -16,7 +16,8 @@
 ___contributors__ = ["Dean Jackson", "Brian Lalor", "Joey Hess", 
                      "Matej Cepl", "Martin 'Joey' Schulze", 
                      "Marcel Ackermann (http://www.DreamFlasher.de)", 
-                     "Lindsey Smith ([EMAIL PROTECTED])" ]
+                     "Lindsey Smith ([EMAIL PROTECTED])",
+                     "Josh Triplett ([EMAIL PROTECTED])"]
 
 ### Vaguely Customizable Options ###
 
@@ -67,6 +68,10 @@
 SMTP_USER = 'username'  # for SMTP AUTH, set SMTP username here
 SMTP_PASS = 'password'  # for SMTP AUTH, set SMTP password here
 
+# Set this to a list of strings to deliver mail with the specified MDA
+# (with arguments).
+MDA = None
+
 # Set this to add a bonus header to all emails (start with '\n').
 BONUS_HEADER = ''
 # Example: BONUS_HEADER = '\nApproved: [EMAIL PROTECTED]'
@@ -147,6 +152,10 @@
                mimify.mimify(ins, outs)
                msg_as_string = outs.getvalue()
                
+       if SMTP_SEND and MDA is not None:
+               print >>warn, ""
+               print >>warn, ('Fatal error: configuration specifies both 
SMTP_SERVER and MDA.')
+
        if SMTP_SEND:
                if not smtpserver: 
                        import smtplib
@@ -179,13 +188,17 @@
                return smtpserver
 
        else:
-               i, o = os.popen2(["/usr/sbin/sendmail", recipient])
+               if MDA is not None:
+                       mail_process = list(MDA)
+               else:
+                       mail_process = ["/usr/sbin/sendmail", recipient]
+               i, o = os.popen2(mail_process)
                i.write(msg_as_string)
                i.close(); o.close()
                pid, status = os.wait()
                if status != 0:
                        print >>warn, ""
-                       print >>warn, ('Fatal error: sendmail exited with code 
%s' % status)
+                       print >>warn, ('Fatal error: mail process (%s) exited 
with code %s' % (str(mail_process), status))
                        sys.exit(1)
                del i, o
                return None
@@ -663,7 +676,7 @@
                if smtpserver:
                        smtpserver.quit()
 
-def list():
+def list_feeds():
        feeds, feedfileObject = load(lock=0)
        default_to = ""
        
@@ -723,7 +736,7 @@
                        else: d = []
                        pickle.dump(d, open(feedfile, 'w'))
 
-               elif action == "list": list()
+               elif action == "list": list_feeds()
 
                elif action in ("help", "--help", "-h"): print __doc__
 

Reply via email to