Don't use this version, its utterly broken. Clearly use upstream edition :)
Dan
On Thu, Oct 21, 2004 at 06:29:37PM -0400, Barak Bejerano wrote:
> Here is a non recursive version I posted here a while ago:
> #!/usr/bin/python
>
> # Copyright (C) 2004 Dan Weber <dan at mirrorlynx dot com>
> #
> # This program is free software; you can redistribute it and/or
> # modify it under the terms of the GNU General Public License
> # as published by the Free Software Foundation; either
> # version 2 of the License, or (at your option) any later
> # version.
> #
> # This program is distributed in the hope that it will be useful,
> # but WITHOUT ANY WARRANTY; without even the implied warranty of
> # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
> # GNU General Public License for more details.
> #
> # You should have received a copy of the GNU General Public License
> # along with this program; if not, write to the Free Software
> # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
> # $Id: mailbox2dbmail,v 1.2 2004/03/19 15:24:08 ilja Exp $
>
> import os,sys,getopt,email,email.Errors,mailbox
> version = "%s 1.2" %(sys.argv[0],)
>
> def main():
> try:
> user=mbox=type=''
> msgnumber=1
> box = "Inbox"
> path = "/usr/local/sbin/dbmail-smtp"
> opts, args = getopt.getopt(sys.argv[1:], "u:m:b:t:p:hv",
> ["user=","mail=","box=","path=","type=","help","version"])
> for o, a in opts:
> if o in ("-v","--version"):
> print version
> sys.exit()
> elif o in ("-h","--help"):
> usage()
> sys.exit()
> elif o in ("-u","--user"):
> user = a
> elif o in ("-m","--mail"):
> mbox = a
> elif o in ("-b","--box"):
> box = a
> elif o in ("-p","--path"):
> path = a
> elif o in ("-t","--type"):
> type = a
> if not user:
> print "No user specified"
> sys.exit(1)
> if not mbox:
> print "No mailbox specified"
> sys.exit(1)
> if box=="Inbox":
> print "Using default Inbox"
> if type=="mbox":
> mbox =
> mailbox.PortableUnixMailbox(open(mbox,'r'),email.message_from_file)
> elif type=="maildir":
> mbox = mailbox.Maildir(mbox,email.message_from_file)
> elif type=="mhdir":
> mbox = mailbox.MHMailbox(mbox,email.message_from_file)
> elif not type:
> print "No mailbox type specified"
> sys.exit(1)
> convert(user,mbox,box,path)
> except getopt.GetoptError:
> usage()
> print "Error Parsing Options"
> sys.exit(1)
>
> def usage():
> print version
> print "'%s' -u|--user <user> -t|--type <mbox, maildir, and mhdir>
> --mail|-m <location of mailbox> -b|--box <Inbox,Inbox.Sent etc> -p <path
> to dbmail-smtp>" %(sys.argv[0],)
>
> def convert(user,mbox,box,path):
> # def msgmeter(msgnumber):
> msgnumber = 1
> # return convert(user,mbox,box,path,msgnumber)
>
> mailmsg = mbox.next()
> while mailmsg:
> try:
> msgnumber = msgnumber + 1
> command = "'%s' -m '%s' -u '%s'" %(path,box,user)
> dbmail = os.popen(command,'w')
> dbmail.writelines(mailmsg.as_string())
> dbmail.close()
> del mailmsg
> print "Processed Message '%s'" %(msgnumber,)
> mailmsg = mbox.next()
>
> except IOError:
> print "Either box or user is invalid"
> sys.exit(1)
>
> except email.Errors.MessageParseError:
> print "Error Parsing Mail"
> sys.exit(1)
>
> # return msgmeter(msgnumber)
>
> # if not mailmsg:
> print "All Done!"
> sys.exit()
>
>
> if __name__ == "__main__":
> main()
>
>
> Dan Weber wrote:
>
> >http://mirrorlynx.com/~dan/mailbox2dbmail-2.0.tar.bz2
> >
> >Updated mailbox2dbmail to fix this.
> >
> >On Thu, Oct 21, 2004 at 06:10:14PM -0400, Dan Weber wrote:
> >
> >
> >>I'll just fix the script to use a while loop. I guess it was a defect
> >>when
> >>I created it. This should be no problem at all, I'll mail it to the list
> >>when I am done.
> >>
> >>Dan
> >>
> >>On Fri, Oct 22, 2004 at 01:51:19AM +0400, Mikhail Ramendik wrote:
> >>
> >>
> >>>Dan Stilts wrote:
> >>>
> >>>
> >>>
> >>>>I had the same error as you ("recursion depth exceeded") so I added
> >>>>this to the mailbox2dbmail script:
> >>>>
> >>>>sys.setrecursionlimit(6000)
> >>>>
> >>>>
> >>>Won't help because some of my mailboxes have over 100,000 messages. But
> >>>never mind; I'll just change the script to be non-recursive.
> >>>
> >>>Yours, Mikhail Ramendik
> >>>
> >>>
> >>>
> >>>_______________________________________________
> >>>Dbmail mailing list
> >>>[email protected]
> >>>https://mailman.fastxs.nl/mailman/listinfo/dbmail
> >>>
> >>>
> >
> >
> >
> >
> >
> >>_______________________________________________
> >>Dbmail mailing list
> >>[email protected]
> >>https://mailman.fastxs.nl/mailman/listinfo/dbmail
> >>
> >>
> >
> >
> >
> >------------------------------------------------------------------------
> >
> >_______________________________________________
> >Dbmail mailing list
> >[email protected]
> >https://mailman.fastxs.nl/mailman/listinfo/dbmail
> >
> >
>
> _______________________________________________
> Dbmail mailing list
> [email protected]
> https://mailman.fastxs.nl/mailman/listinfo/dbmail
signature.asc
Description: Digital signature
