RSS | technovelty home | page of ian | ianw@ieee.org
I seem to get messages like Unable to deliver message to the
following recipients, because the message was forwarded more than the
maximum allowed times when I try to bounce messages via mutt.
This is because by the time an email to ianw@ieee.org gets to my inbox it has bounced
around a bunch of places like the IEEE and UNSW.
What I would really like is a filter-and-bounce
function in mutt to filter out the headers. This involves minimal
work from me (as opposed to, say, resending the message). mutt
doesn't have this so I have hacked my own.
Firstly, in .muttrc add
set pipe_decode=no macro index "B" "python2.3 /home/bin/bounce.py "
The pipe decode is important, since otherwise mime messages will get scrambled on the bounce and attachments won't come, etc.
Then just do the bounce with this python script
SENDMAIL = "/usr/sbin/sendmail"
FROMMAIL = "ianw@ieee.org"
SMTPHOST = mail.internode.on.net
import email, sys, smtplib, os
m = email.message_from_file(sys.stdin)
del m['received']
if len(sys.argv) == 2 :
email = sys.argv[1]
print "Bouncing to %s" % email
else:
newstdin = os.open("/dev/tty", os.O_RDONLY)
os.dup2(newstdin, 0)
print "Email to send to :",
sys.stdout.flush()
email = sys.stdin.readline()
server = smtplib.SMTP(SMTPHOST)
server.sendmail(FROMMAIL, email, m.as_string())
server.quit()
The only tricky bit is having to re-open stdin because
mutt sets up a pipe between it and the pipe-message
process. You can add your own X-Resent-From type headers
if you want.
posted at: Tue, 26 Apr 2005 16:47 | in /code/hacks | permalink | add comment (0 others)

This work is licensed under a Creative Commons Attribution-ShareAlike 2.5 License.