Metadata-Version: 2.1
Name: tnefparse
Version: 1.3.0
Summary: a TNEF decoding library written in python, without external dependencies
Home-page: https://github.com/koodaamo/tnefparse
Author: Petri Savolainen
Author-email: petri.savolainen@koodaamo.fi
License: LGPL
Keywords: TNEF MAPI decoding mail email microsoft
Platform: UNKNOWN
Classifier: Topic :: Communications :: Email
Classifier: License :: OSI Approved :: GNU Lesser General Public License v3 (LGPLv3)
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: End Users/Desktop
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console

tnefparse - TNEF decoding and attachment extraction
===================================================

.. image:: https://badge.fury.io/py/tnefparse.png
    :target: http://badge.fury.io/py/tnefparse

.. image:: https://travis-ci.org/koodaamo/tnefparse.png?branch=master
        :target: https://travis-ci.org/koodaamo/tnefparse

.. image:: https://codecov.io/gh/koodaamo/tnefparse/branch/master/graph/badge.svg
  :target: https://codecov.io/gh/koodaamo/tnefparse

This is a pure-python library for decoding Microsoft's Transport Neutral Encapsulation Format (TNEF), for Python
versions 2.7, 3.5+ and PyPy. For more information on TNEF, see for example 
`wikipedia <http://en.wikipedia.org/wiki/Transport_Neutral_Encapsulation_Format>`_. The full TNEF specification
is also available as a `PDF download <https://interoperability.blob.core.windows.net/files/MS-OXTNEF/[MS-OXTNEF].pdf>`_.

A :code:`tnefparse` command-line utility is provided for listing contents of TNEF files, extracting attachments
found inside them and so on::

 usage: tnefparse [-h] [-o] [-a] [-p PATH] [-b] [-hb]
                  [-l LEVEL] [-c]
                  file [file ...]

 Extract TNEF file contents. Show this help message if no arguments are given.

 positional arguments:
   file                  space-separated list of paths to the TNEF files

 optional arguments:
   -h, --help             show this help message and exit
   -o, --overview         show (possibly long) overview of TNEF file contents
   -a, --attachments      extract attachments, by default to current dir
   -p PATH, --path PATH   optional explicit path to extract attachments to
   -b, --body             extract the body to stdout
   -hb, --htmlbody        extract the HTML body to stdout
   -rb, --rtfbody         extract the RTF body to stdout
   -l LEVEL, --log LEVEL  set log level to DEBUG, INFO, WARN or ERROR
   -c, --checksum         calculate checksums (off by default)

The library can also be used as a basis for applications that need to parse TNEF. To parse a TNEF attachment, run eg. :

>>> from tnefparse import TNEF
>>> with open("tests/examples/one-file.tnef", "rb") as tneffile:
...    tnefobj = TNEF(tneffile.read())

The parsed attachment contents are then available as TNEF object attributes:

* signature - TNEF file signature
* key - generated by TNEF enabled transports before using the TNEF implementation to generate a TNEF stream
* codepage - a Windows code page string
* objects - a collection of `TNEFObject` instances
* attachments - a collection of `TNEFAttachment` instances
* mapiprops - a collection of MAPI properties represented by `TNEFMAPI_Attribute` instances
* body - message body (may contain both HTML and RTF)
* htmlbody - a string containing just the HTML message body 
* rtfbody - just the RTF body

Some of the above properties may be empty, depending on what's contained in the attachment that was parsed.

Use :code:`python setup.py test` to run the tests.

Issues and pull requests welcome. **Please however always provide an example TNEF file** that can be used to demonstrate the bug or desired behavior, if at all possible.

**Note: If you have understanding of TNEF and/or MIME internals or just need this package and want to help with maintaining it, I am open to giving you commit rights. Just let me know.**




tnefparse 1.3.0 (2018-12-01)
=============================

- drop Python 2.6 & 3.3 support
- Python 2/3 compatibility fixes
- more tests & example files (jrideout)
- overall improved testing & start tracking coverage
- lots of parsing improvements (jrideout)
- turn some unnecessary warnings into debug messages
- add tnefparse -p | --path option for setting attachment extraction path
- support more MAPI (PidTag) properties (jrideout)
- support RTF body extraction (jrideout)
- support extracting top level object attributues in msgprops (jrideout)
- util.raw_mapi & tnefparse.parseFile functions will be deprecated after 1.3

tnefparse 1.2.3, 2018-11-14
============================

- misc. fixes

tnefparse 1.2.2, 2017
======================

- have `TNEF` init raise ValueError on invalid TNEF signature, rather than calling sys.exit()
- `parseFile` convenience function should not expect a `self` parameter, removed
- other misc. fixes

tnefparse 1.2.1, 2013
======================

- Python 3 compatibility; tests pass on Python 2.6/2.7/3.2/3.3
- add package to travis ci
- add tox.ini for testing using https://testrun.org/tox

tnefparse 1.2, 2013
===================

- performance improvements & bug fixes (Dave Baggett)
- added to_zip function for converting TNEF attachments into ZIPped ones (Dave Baggett)
- tnefparse is now used in the inky email client from Arcode

tnefparse 1.1.1, 08/2012 (unreleased)
=====================================

- fixed entry point bug that caused 'tnefparse' cmd-line invocation to fail

tnefparse 1.1, 03/2012
=======================

- Repackaged and renamed the library
- Code moved to github
- Use the stdlib logging module
- Further bug fixes and enhancements to pure-python code
- Add a command-line script
- Drop the unix tnef command-line tool wrapper

pytnef 0.2.1-Novell, circa 2010
================================

- Bug fixes/enhancements to pure-python code (Tom Doman)

pytnef 0.2, circa 2005
======================

- Added a wrapper for the unix tnef command-line tool (Petri Savolainen)
- Pure-python code not very useful yet

pytnef 0.1 - circa 2005
=======================

- First version (pure-python) created as a conversion of a Ruby TNEF decoder
  by Trevor Scheroeder (Petri Savolainen)


