Difference between revisions of "PyThunderbird"
Jump to navigation
Jump to search
Line 16: | Line 16: | ||
How can this setup be accessed with Python? | How can this setup be accessed with Python? | ||
{{pip|pyThunderbird}} | {{pip|pyThunderbird}} | ||
+ | = Usage = | ||
+ | <source lang='bash'> | ||
+ | tbmail -h | ||
+ | usage: tbmail [-h] [-a] [-c] [-d] [--debugServer DEBUGSERVER] | ||
+ | [--debugPort DEBUGPORT] [--debugRemotePath DEBUGREMOTEPATH] | ||
+ | [--debugLocalPath DEBUGLOCALPATH] [-l] [-i INPUT] [-rol] | ||
+ | [--host HOST] [--port PORT] [-s] [-V] [-u USER] [-m MAILID] | ||
+ | [-ul USER_LIST [USER_LIST ...]] [-ci] [-f] [-v] | ||
+ | |||
+ | python based access to Thunderbird mail | ||
+ | |||
+ | options: | ||
+ | -h, --help show this help message and exit | ||
+ | -a, --about show about info [default: False] | ||
+ | -c, --client start client [default: False] | ||
+ | -d, --debug show debug info [default: False] | ||
+ | --debugServer DEBUGSERVER | ||
+ | remote debug Server | ||
+ | --debugPort DEBUGPORT | ||
+ | remote debug Port | ||
+ | --debugRemotePath DEBUGREMOTEPATH | ||
+ | remote debug Server path mapping - remotePath - path on | ||
+ | debug server | ||
+ | --debugLocalPath DEBUGLOCALPATH | ||
+ | remote debug Server path mapping - localPath - path on | ||
+ | machine where python runs | ||
+ | -l, --local run with local file system access [default: False] | ||
+ | -i INPUT, --input INPUT | ||
+ | input file | ||
+ | -rol, --render_on_load | ||
+ | render on load [default: False] | ||
+ | --host HOST the host to serve / listen from [default: localhost] | ||
+ | --port PORT the port to serve from [default: 8482] | ||
+ | -s, --serve start webserver [default: False] | ||
+ | -V, --version show program's version number and exit | ||
+ | -u USER, --user USER id of the user | ||
+ | -m MAILID, --mailid MAILID | ||
+ | id of the mail to retrieve | ||
+ | -ul USER_LIST [USER_LIST ...], --user-list USER_LIST [USER_LIST ...] | ||
+ | -ci, --create-index create an alternative index for the given users's | ||
+ | Thunderbird mailarchive | ||
+ | -f, --force force the creation of a new index even if one already | ||
+ | exists | ||
+ | -v, --verbose show verbose infos e.g. on startup [default: False] | ||
+ | </source> | ||
= Configuration = | = Configuration = | ||
== $HOME/.thunderbird.yaml == | == $HOME/.thunderbird.yaml == |
Revision as of 18:28, 1 December 2023
OsProject
OsProject | |
---|---|
edit | |
id | pyThunderbird |
state | active |
owner | WolfgangFahl |
title | pyThunderbird |
url | https://github.com/WolfgangFahl/pyThunderbird |
version | 0.1.0 |
description | |
date | 2023-12-01 |
since | 2020-10-24 |
until |
Motivation
Thunderbird uses mailbox format and an sqlite database for keeping track of the mails. How can this setup be accessed with Python?
Installation
pip install pyThunderbird
# alternatively if your pip is not a python3 pip
pip3 install pyThunderbird
# local install from source directory of pyThunderbird
pip install .
upgrade
pip install pyThunderbird -U
# alternatively if your pip is not a python3 pip
pip3 install pyThunderbird -U
Usage
tbmail -h
usage: tbmail [-h] [-a] [-c] [-d] [--debugServer DEBUGSERVER]
[--debugPort DEBUGPORT] [--debugRemotePath DEBUGREMOTEPATH]
[--debugLocalPath DEBUGLOCALPATH] [-l] [-i INPUT] [-rol]
[--host HOST] [--port PORT] [-s] [-V] [-u USER] [-m MAILID]
[-ul USER_LIST [USER_LIST ...]] [-ci] [-f] [-v]
python based access to Thunderbird mail
options:
-h, --help show this help message and exit
-a, --about show about info [default: False]
-c, --client start client [default: False]
-d, --debug show debug info [default: False]
--debugServer DEBUGSERVER
remote debug Server
--debugPort DEBUGPORT
remote debug Port
--debugRemotePath DEBUGREMOTEPATH
remote debug Server path mapping - remotePath - path on
debug server
--debugLocalPath DEBUGLOCALPATH
remote debug Server path mapping - localPath - path on
machine where python runs
-l, --local run with local file system access [default: False]
-i INPUT, --input INPUT
input file
-rol, --render_on_load
render on load [default: False]
--host HOST the host to serve / listen from [default: localhost]
--port PORT the port to serve from [default: 8482]
-s, --serve start webserver [default: False]
-V, --version show program's version number and exit
-u USER, --user USER id of the user
-m MAILID, --mailid MAILID
id of the mail to retrieve
-ul USER_LIST [USER_LIST ...], --user-list USER_LIST [USER_LIST ...]
-ci, --create-index create an alternative index for the given users's
Thunderbird mailarchive
-f, --force force the creation of a new index even if one already
exists
-v, --verbose show verbose infos e.g. on startup [default: False]
Configuration
$HOME/.thunderbird.yaml
The yaml file has two entries per user
MacOS Example
joe:
db: /Users/joe/Library/Thunderbird/Profiles/klm97bfn.default/gloda.sqlite
profile: /Users/wf/Library/Thunderbird/Profiles/klm97bfn.default
kathy:
db: /Users/kathy/Library/Thunderbird/Profiles/war97k3r.default/gloda.sqlite
profile: /Users/kathy/Library/Thunderbird/Profiles/war97k3r.default
Linux example
in this example the server runs from an rsync'ed backup of the thunderbird files of the different users
user123:
db: /hd/diskAlpha/backup/siteAlpha.com/user123/Library/Thunderbird/Profiles/randomID1.default/global-messages-db.sqlite
profile: /hd/diskAlpha/backup/siteAlpha.com/user123/Library/Thunderbird/Profiles/randomID1.default
user456:
db: /hd/diskBeta/backup/siteBeta.com/user456/Library/Thunderbird/Profiles/randomID2.default/global-messages-db.sqlite
profile: /hd/diskBeta/backup/siteBeta.com/user456/Library/Thunderbird/Profiles/randomID2.default
Relevant Libraries
Links
- https://stackoverflow.com/questions/21625906/access-thunderbird-emails-by-python
- https://stackoverflow.com/questions/60938536/decoding-mail-subject-thunderbird-in-python-3-x
- https://medium.com/shanes-tech-tips/offlineimap-to-thunderbird-152bb02286f
- https://groups.google.com/g/comp.lang.python/c/sp-3_ddmgbA?pli=1
- https://wlsoft.de/?q=node/369
- https://github.com/rooper/thunderbirdscraper/blob/master/run.py
- https://stackoverflow.com/questions/26567843/reading-the-mail-content-of-an-mbox-file-using-python-mailbox/26567942