{"id":20157323,"url":"https://github.com/slomkowski/mailbook","last_synced_at":"2025-10-08T12:10:44.206Z","repository":{"id":6521382,"uuid":"7762306","full_name":"slomkowski/mailbook","owner":"slomkowski","description":"Custom version of 'Send to Kindle' feature for Kindle 3 \u0026 DX with collections support.","archived":false,"fork":false,"pushed_at":"2014-08-03T11:02:25.000Z","size":216,"stargazers_count":4,"open_issues_count":0,"forks_count":1,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-07-04T06:37:31.160Z","etag":null,"topics":["kindle","python"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/slomkowski.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2013-01-22T22:02:57.000Z","updated_at":"2023-06-05T12:35:18.000Z","dependencies_parsed_at":"2022-09-08T01:50:59.436Z","dependency_job_id":null,"html_url":"https://github.com/slomkowski/mailbook","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/slomkowski/mailbook","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/slomkowski%2Fmailbook","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/slomkowski%2Fmailbook/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/slomkowski%2Fmailbook/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/slomkowski%2Fmailbook/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/slomkowski","download_url":"https://codeload.github.com/slomkowski/mailbook/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/slomkowski%2Fmailbook/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278940225,"owners_count":26072474,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-08T02:00:06.501Z","response_time":56,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["kindle","python"],"created_at":"2024-11-13T23:45:34.384Z","updated_at":"2025-10-08T12:10:44.191Z","avatar_url":"https://github.com/slomkowski.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"mailbook - equivalent for *Send to Kindle* feature with collections support\n===========================================================================\n\n**(C) 2013 Michał Słomkowski**\n**GNU GPL v.3 license**\n\nIf you use *Send to Kindle* feature from Amazon on Kindle DX via Whispernet, you have to pay some cents for each megabyte. So I've written myself a complete free equivalent in Python. Another advantage is that is supports collections. You can type the collection name and the files will be placed accordingly. The software consists of three scripts, which run on:\n* Kindle 3 or DX,\n* remote shell account with HTTP server and mailbox,\n* local computer.\n\nThe script for Kindle is mandatory, the other two are optional, although you need at least one of them to send files to Kindle.\n\n**Warning! Using Whispernet in the ways as this script does is against the rules. You might be banned from the further usage of this service. Your library is accessible for the whole world via public HTTP server. The files are not encrypted. You should at least use some random directory name like kindle.r3fesf4re**\n\nLocal script\n------------\n\nLocal scripts gets files from the command line or all files with the valid extension from the current directory. Some formats like *.epub* are not supported by Kindle so conversion is needed. It's done by the script using external converter. You can use *Kindlegen* from Amazon or *ebook-convert* from Calibre. The script is configured to use *ebook-convert* by default. To use Kindlegen you have to edit the script.\n\nThe script sends the files to the remote shell account via SSH. You should configure SSH to store keys in order to disable annoying password prompts.\n\nYou can specify collection name or, if the collection exists, only partial name. The exact name will be matched. Because of the Kindle limitations, the collections are loaded only at boot time. In order to reload them, you have to reboot Kindle. If you use *-r* parameter, the Kindle will reboot after the update.\n\nTo check the exact usage, type:\n\u003ccode\u003e\n$ kindle.py -h\n\u003c/code\u003e\nThe script needs Python 3 to run.\n\nShell account script\n--------------------\n\nThis script looks for changes in the mailbox directory. When the mail arrives, the subject is checked. It has to have this form:\n\u003ccode\u003e\nkindle[-reboot][: collection name]\n\u003c/code\u003e\nThe texts in brackets are optional. If you set reboot flag, the device will reboot after the next update. You can specify collection name too. The changes in the collection will be visible after the reboot. The sender is checked if the sender checking feature is enabled.\n\nThe configuration is stored in the file *extract.ini*. The output directory must be accessible via HTTP address.\n\nThe script needs Python 3 to run. If you don't want email feature, you don't have to set up this script. However, the shell account with HTTP server is mandatory.\n\nKindle script\n-------------\n\nThis script requires Python 2.7 to run. The installation is described here:\nhttp://www.mobileread.com/forums/showthread.php?t=153930\n\nConfiguration is stored in the file *libupdate.py*. Script uses Amazon Whispernet to download files. The files go through Amazon proxy. In order to do so, X-FSN key has to be added to each GET request. The X-FSN number is stored in the cookie in the Kindle framework directory. If you get a message of invalid file, you should run Kindle web browser so this file will be created. \n\nAfter every update the collections are regenerated to match the directory structure. You can skip update and only regenerate collections using *-g* parameter. The script has some other options, type\n\u003ccode\u003e\n$ ./libupdate.py -h\n\u003c/code\u003e\nto show them.\n\nThe most convenient way to run script is by keyboard shortcuts. The script comes with *mailbook.ini* config file with the following hotkeys:\n* **Shift U U** - perform update and reboot if the reboot flag was set by the sender and collections have been changed.\n* **Shift U G** - regenerate collections only and reboot if changed.\n* **Shift U N** - perform update and regenerate collections but don't reboot.\n\nYou should copy it to *launchpad* directory in your Kindle dir. Launchpad is a small hotkeys daemon. You can download it here:\nhttp://www.mobileread.com/forums/showthread.php?t=97636\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fslomkowski%2Fmailbook","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fslomkowski%2Fmailbook","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fslomkowski%2Fmailbook/lists"}