On Wed, May 16, 2001 at 07:48:46AM -0700, Bruce Eckel wrote:
Not really. If you can expland on what you'd like to accomplish by doing this, maybe I can help a little better.
What I want to do is take the confirmation email that PayPal sends and automatically respond to it by emailing the product to the customer (trying to do "the simplest thing that could possibly work" here).
Another alternative is of course to do it completely outside of Zope, and drive the script with cron. That might be easiest if
(1) I knew how to "read" mail to a particular address inside of Python (it looks like the 'mailbox' module does this, but it only reads from one mailbox. Thus, to work, it would seem that address must be sent to a particular mailbox, which I would guess is possible but requires sendmail(?) configuration).
Most MTAs (the software that handles the mail delivery, like sendmail) allow you to attach a script to an email address. If you control your own MTA, you can set up an alias in the /etc/aliases file that points not to a mailbox but to a script. This is how most mailinglists are configured. This (usually) doesn't require any reconfiguration of the MTA. The script will get fired up for each email that comes in. You could then use it to generate your reply email. If PayPal payments are almost instantanious (only an email delay), you could have the incoming-mail script handle the parsing of that email and have it send ZOpe an XML-RPC message to set the correct 'Paid' flag. The customer would be watching a 'Your payment is being processed' page that refreshes itself every 30 seconds or so, until the correct flag is set in the database. He or she can then download the file. This latter solution is more complex, but allows the selling of files greater than 100k, as mailboxes of recipients may be quota limited.
(2) I could figure out how to send attachments with Python-generated mail. I know there are libraries, but any docs on this seem to go on and on, and have all kinds of options and alternatives -- it's so simple in Zope. But in python, it appears I would use MimeWriter. I've found two examples of this, both of which write to sys.stdout, which is confusing -- how do you actually email such a thing?
Use MimeWriter and the sendmail library. And read up on some mime documentation. You'd need the latter for sending attachments using Zope as well, as you'll need to create the correct mime boundaries anyway. Hope this helps! I-wish-chapter-3-of-TIC++-wasn't-quite-so-long-so-I-can-get-to-the-meat-ly yours, -- Martijn Pieters | Software Engineer mailto:mj@digicool.com | Digital Creations http://www.digicool.com/ | Creators of Zope http://www.zope.org/ ---------------------------------------------