Mozilla Thunderbird extension for KeePassXC with Native Messaging.
Based on KeePassXC-Browser and keebird.
Hopefully we can get this as simple as for KeePassXC-Browser in the future.
- Configure KeePassXC-Browser as described in this document. Make sure to enable the integration for Firefox.
- Create the configuration file for Native Messaging as described below in Native Messaging configuration.
- Install the add-on in Thunderbird. Either install it from addons.thunderbird.net or download the latest prebuilt xpi or build it yourself (
npm install
,npm run build
, the xpi will be in themail-ext-artifacts
directory).
- Install KeepassNatMsg and configure it described in this document
- Install the add-on in Thunderbird. Either install it from addons.thunderbird.net or download the latest prebuilt xpi or build it yourself (
npm install
,npm run build
, the xpi will be in themail-ext-artifacts
directory).
Run the following commands in the PowerShell:
$browserJSONPath=Get-ItemPropertyValue -path 'HKCU:\Software\Mozilla\NativeMessagingHosts\org.keepassxc.keepassxc_browser' -name '(default)'
$mailJSONPath=Join-Path -path (Split-Path -path $browserJSONPath) -childPath de.kkapsner.keepassxc_mail.json
cat $browserJSONPath |
%{$_ -replace "keepassxc-browser@keepassxc.org","keepassxc-mail@kkapsner.de"} |
%{$_ -replace "org.keepassxc.keepassxc_browser","de.kkapsner.keepassxc_mail"} |
Out-File -filePath $mailJSONPath -Encoding ASCII
New-Item -path 'HKCU:\Software\Mozilla\NativeMessagingHosts\de.kkapsner.keepassxc_mail' -type Directory -force
Set-ItemProperty -path 'HKCU:\Software\Mozilla\NativeMessagingHosts\de.kkapsner.keepassxc_mail' -name '(default)' -value $mailJSONPath
NOTE: if Thunderbird is installed via Snap or flatpak it might not work (see #95 for further details)
Run the following command in a terminal:
cat ~/.mozilla/native-messaging-hosts/org.keepassxc.keepassxc_browser.json \
| sed s/keepassxc-browser@keepassxc.org/keepassxc-mail@kkapsner.de/ \
| sed s/org.keepassxc.keepassxc_browser/de.kkapsner.keepassxc_mail/ \
> ~/.mozilla/native-messaging-hosts/de.kkapsner.keepassxc_mail.json
Run the following command in a terminal:
cat ~/Library/Application\ Support/Mozilla/NativeMessagingHosts/org.keepassxc.keepassxc_browser.json \
| sed s/keepassxc-browser@keepassxc.org/keepassxc-mail@kkapsner.de/ \
| sed s/org.keepassxc.keepassxc_browser/de.kkapsner.keepassxc_mail/ \
> ~/Library/Application\ Support/Mozilla/NativeMessagingHosts/de.kkapsner.keepassxc_mail.json
ln -s ~/Library/Application\ Support/Mozilla/NativeMessagingHosts/ ~/Library/Mozilla/
KeePassXC-Mail uses the following schema to find matching entries for a given server:
imap://{server name}
smtp://{server name}
pop3://{server name}
http://{server name}
https://{server name}
nntp-1://{server name}
nntp-2://{server name}
oauth://{account}
masterPassword://Thunderbird
openpgp://{fingerprint of the private key}
If you have the same user and password for receiving (imap/pop3) and sending (smtp) and do not want to duplicate your entries you can go to the "Browser Integration" section of the entry definition in KeePassXC and add the second URL there.
You can contribute to keepassxc-mail by translating it and/or improving the translations. For further instructions go to #30.
Icon is based on the icon of KeePassXC-Browser - just the colors are changed to some colors of the Thunderbird.
KeePassXC-Mail itself does not contact any server and does not store any private data. For the automatic update process (before version 0.9) a server hosted by PixelX is contacted. Apart of the usual server logging (IP address, access time and accessed location) nothing is stored. After version 0.9 this extension is hosted on addons.thunderbird.net.
- https://github.com/dchest/tweetnacl-js/blob/1.0.3/nacl.min.js
- https://github.com/dchest/tweetnacl-util-js/blob/v0.15.0/nacl-util.min.js
- https://github.com/keepassxreboot/keepassxc-browser/blob/1.9.5/keepassxc-browser/background/client.js
- https://github.com/keepassxreboot/keepassxc-browser/blob/1.9.5/keepassxc-browser/background/keepass.js