looks like send_email_message is a function object which is not pickleable.
i do a crap-ton of:
taskqueue.add(url=URL(r=request, ...), params={...})
i think many-moons ago i tried with no luck to use the deferred library and
gave up. taskque.add is so much more clear to me. anyhow, from GAE docs
(http://code.google.com/appengine/articles/deferred.html):
There are a few limitations on what you can pass to deferred.defer:
- All arguments must be picklable. That means you can't pass exotic
things like instances of nested classes as function arguments. If you're
calling an instance method, the instance must be picklable too. If you're
not familiar with what 'pickling' is, don't worry - most stuff that you're
likely to be passing to deferred.defer will work just fine.
- You can't call nested functions, or methods of nested classes.
- You can't call lambda functions (but you probably wouldn't want to
anyway).
- You can't call a static method.
- You can't call a method in the request handler module.