| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
| |
Changed all the example emails over to the new format.
Now it's time to try them all out and fix all the bugs ;).
|
|
|
|
|
| |
Waiting for a response so you can get the bug ID for your initial
comment is silly. Now you don't have to :)
|
| |
|
|
|
|
|
| |
Added Command and Message classes, and use new flexibility in
send_pgp_mime.py.
|
|
|
|
|
| |
The goal being to make handling commands differently easier, rather
than just passing off the whole interface to becommands.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Also removed "commit after every message" from be-handle-mail,
because
a) not implemented yet
b) don't want to commit spam, since we'd have to find a way to
remove it later.
Suggested future workflow:
* "bzr diff" to poll for activity, blank output = no activity.
* on activity:
1) look at changes
2) remove whatever
3) commit email-interface repo.
4) merge changes into your private repo
* on private repo changes:
* if activity in email-interface repo:
1) deal with email activity as above
* push your private repo onto the email-interface repo
(and update the email repos' working tree, if required)
|
|
|
|
|
|
|
|
|
|
|
|
| |
This required replacing both the codec-wrapped sys.stdin _and_ the raw
sys.__stdin__ with StringIO(stdin). becommands/comment will use only
one or the other depending on the comment's content type.
Caveat: Get_body_type only grabs the body and type of the first
non-mulitpart section, which may not be what the user expects.
Todo: Add multiple comments for each part of a multipart message, like
we do in interfaces/xml/be-mbox-to-xml.
|
|
|
|
| |
This fixes problems with StringIO(None).
|
|
|
|
|
|
| |
Fixes incorrect implementation of _comment_ bodies via stdin in my
wking@drexel.edu-20090718143517-mkd6toxmcoij3qwk
commit.
|
|
|
|
|
| |
This avoids decode-recode issues inside libbe.cmdutil.execute(), as
well as problems due to large comment bodies.
|
| |
|
|
|
|
|
| |
Also restored Makefile target to home (from local), which I'd
accidentally committed two commits ago...
|
|
|
|
|
|
| |
The previous procmail encoding fix failed, because the becommand
execution checks libbe.encoding.get_encoding() on it's own, and got
the procmail encoding. This one works.
|
| |
|
|
|
|
|
|
|
| |
When run by procmail, the encoding returned by
libbe.encoding.get_encoding is ANSI_X3.4-1968, which chokes on unicode
output. I can't think of a more elegant solution than hardcoding in
the default encoding.
|
|
|
|
|
|
|
|
|
|
|
| |
be-handle-mail wants unicode output, since all it's internal
processing is done with unicode. However, the flatten calls in
send_pgp_mime work with the encoded binary string output, and
execute(sendmail, stdin=flatten(msg, to_unicode=True)) fails
with
Exception: u
while executing /usr/sbin/sendmail -t
sendmail: fatal: wking(1001): No recipient addresses found in message header
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Now be-handle-mail handles examples/unicode without crashing
cat examples/unicode | ./be-handle-mail -o -l -
But the output email is encoded in base64:
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
From: BE Bugs <wking@thor.physics.drexel.edu>
To: John Doe <jdoe@example.com>
Date: Sat, 18 Jul 2009 12:22:05 +0000
Subject: [be-bug] Re: show
In-reply-to: <abcd@example.com>
UmVzdWx0cyBvZiBydW5uaW5nOiAoZXhpdCBjb2RlIDApCiAgc2hvdyAKCnN0ZG91dDoKCjw/eG1s
IHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04IiA/Pgo8YnVnPgogIDx1dWlkPmY3Y2NkOTE2
LWI1YzctNDg5MC1hMmUzLThjOGFjZTE3YWUzYTwvdXVpZD4KICA8c2hvcnQtbmFtZT5mN2M8L3No
b3J0LW5hbWU+CiAgPHNldmVyaXR5Pm1pbm9yPC9zZXZlcml0eT4KICA8c3RhdHVzPmZpeGVkPC9z
...
This is perhaps the best we can get out of python < 3.1/2.7, see
http://bugs.python.org/issue1368247
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
be-handle-mail now gets a bit further on
cat examples/unicode | ./be-handle-mail -o -l - 2>&1 1>/dev/null
It successfully reads in unicode output from the command execution and
successfully prints that output to the log ("-l - 2>&1 1>/dev/null" sets
up the log to be printed to the terminal's stdout). However, it chokes
later on with
responding to John Doe <jdoe@example.com>: show
Traceback (most recent call last):
File "./be-handle-mail", line 274, in <module>
main()
File "./be-handle-mail", line 266, in main
response_email = compose_response(ret, out_text, err_text, info).plain()
File "./be-handle-mail", line 210, in compose_response
LOGFILE.write("\n%s\n\n" % send_pgp_mime.flatten(response_email.plain()))
File "/home/wking/src/fun/be/be.email/interfaces/email/interactive/send_pgp_mime.py", line 165, in flatten
g.flatten(msg)
File "/usr/lib/python2.5/email/generator.py" ...
...
UnicodeEncodeError: 'ascii' codec can't encode character u'\ufffd' in position 2581: ordinal not in
range(128)
|
| |
|
|
|
|
|
| |
The previous setup had been pretty wimpy; now there's a degree of
flexibility.
|
|
|
|
|
|
|
| |
At least, it points to the directory where be-handle-mail lives. If
you haven't moved it, that will be somewhere inside the BE repository.
This removes my hardcoded BE_DIR.
|
| |
|
|
|
|
| |
Everything seems to be working now. On to the remote tests ;).
|
| |
|
| |
|
| |
|
|
|
|
|
| |
Even though I convert to ascii in send_pgp_mime.Mail.__init__(), it's
still good to be consistent inside each module ;).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Although I'm not catching stdout/stderr yet, so the replies aren't
very useful ;). Still it the send_pgp_mime.py interface is working :).
I've added rudimentary logging (via LOGFILE) to keep track of what
be-handle-mail is up to. There's also BE_DIR, which sets the
directory that BE lives in (important ;).
The author handling got more consistent, thanks to
send_pgp_mime.source_email (using the new return_realname option) and
email.utils.formataddr(). Now author_addr should look the same
regardless of which phrasing you use to set it (e.g. "NAME <ADDR>" vs
"ADDR (NAME)", and possibly others.)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Also a few more tweaks to get things working. I think be-handle-mail
is parsing the incoming messages correctly now, but I'm not getting
replies back for some reason. Some of the adjustments:
* Moved send_pgp_mime -> send_pgp_mime.py, otherwise Python doesn't
recognize it as an importable module.
* I use postfix now instead of msmtp, so send_pgp_mime.sendmail now
points to postfix's sendmail-compatable frontend.
* Added "--mode=plain" option to send_pgp_mime.py, so I can test
my procmail rules and send_pgp_mime itself without worrying about
be-handle-mail.
* Fixed some typos in be-handle-mail.
|
| |
|
|
|
|
|
| |
Todo: generate a real response email to replace the current dummy
email.
|
| |
|
|
So far, it parses the emails and executes the specified task.
Todo: email the sender back with the output/errors/exit-status/etc.
|