I can already say that "smtplib" is not to blame. It is (mostly) unconcerned with the internal structure of the message -- and by itself will not empty attachments.
On the advice of a co-worker, I tried using web2py's gluon.tools.Mail. It was easier to accomplish the attachment, and Thunderbird opened the .pdf just fine. Thanks for the suggestions. Tobiah -- http://mail.python.org/mailman/listinfo/python-list