]> git.cworth.org Git - notmuch-wiki/blobdiff - howto.mdwn
Turn the python example into a doctest that works on python 2 and 3
[notmuch-wiki] / howto.mdwn
index 0e75acc82bdc4b2aee8f9e957c6e8047a90d07a7..ab5f20d55c344cd6cac0c11e121e6fc6eb686b89 100644 (file)
@@ -30,22 +30,20 @@ various "third party" notmuch utilities.
 
 * <span id="print_filenames">**Print only filenames of a search (python bindings)**</span>
 
-  Notmuch includes [python bindings](http://pypi.python.org/pypi/notmuch)
-  to the notmuch shared library. Extensive API documentation
-  [is available](http://packages.python.org/notmuch).
+  Notmuch includes python bindings to the notmuch shared
+  library. Extensive API documentation [is
+  available](http://notmuchmail.readthedocs.org/).
 
   The bindings are very simple to use.  As an example, given you have
   the python bindings installed (or simply set your PYTHONPATH
   environment variable to point to the .../bindings/python directory),
   this script will print the filenames of a matching search:
 
-                             #!/usr/bin/env python
-                             import sys
-                             import notmuch
-                             search = " ".join(sys.argv[1:])
-                             q = notmuch.Database().create_query(search)
-                             for m in q.search_messages():
-                                 print m.get_filename()
+      >>> import notmuch
+      >>> db = notmuch.Database()
+      >>> query = db.create_query('tag:inbox AND NOT tag:killed')
+      >>> list(query.search_messages()) # doctest:+ELLIPSIS
+      [...]
 
 * <span id="sync_maildir_flags">**Sync notmuch tags and maildir flags**</span>
 
@@ -114,3 +112,28 @@ various "third party" notmuch utilities.
   At this point, one should run a sanity check on the tags, and if everything
   has merged correctly, the ~/.notmuch.bak directory is expendable, as is
   ~/out.nm.
+
+* <span id="nbox">**Dealing with mbox and other formats**</span>
+
+  notmuch by itself is unable to handle non-maildir mail archives.  One tool
+  to solve this is called mb2md.  Assuming an mbox in ~/test.mbox and ones
+  mail archives to be in ~/Mail, an invocation would look like
+
+                           $ mb2md -s ~/test.mbox -d ~/Mail/mynewmaildirname
+
+  Note that specifying the paths for -s and -d is necessary.  This will create
+  a new maildir in ~/Mail/mynewmaildirname from the mbox at ~/test.mbox.
+
+  Often the formats are more convoluted, however.  Many lists provide an
+  almost-but-not-quite-mbox format that mailman produces, as can be seen, for
+  example, [here](http://lists.xapian.org/pipermail/xapian-devel/).  These
+  files can be converted with some degree of success to mbox using the script
+  found
+  [here](http://www.hermann-uwe.de/blog/converting-mailman-gzipd-text-archive-files-to-proper-mbox-files),
+  and from mbox to maildir as above.
+
+  However, many of these lists also have a gmane version, which, where it
+  exists, achieves far better results than dealing with the messy mailman
+  output.  Using the instructions from [Gmane's
+  site](http://gmane.org/export.php), we can download an mbox file, which we
+  can then convert to maildir using mb2md or other utility.