Create a gist now

Instantly share code, notes, and snippets.

Send eBooks to a Kindle from the MacOS command line
  1. Install msmtp, a simple sendmail stand-in that sends mail via a relay host (which is what you want, in almost all cases):

     brew install msmtp --with-macosx-keyring

    The flag with-macosx-keyring will make msmtp use the MacOS keychain, which is a pretty secure way to keep your mail account password secure.

  2. Configure it as described in this article. Don't use the manual installation method described there, Homebrew (which we used in step 1) is way more convenient.

  3. Have mail use msmtp instead of sendmail by creating .mailrc with the following content (or adding it, it the file already exists):

     set sendmail=/usr/local/bin/msmtp
  4. As we are going to use mutt to send mail with attachments, we just symlink the .mailrc created above:

     ln -s .mailrc .muttrc

    If you already have a .muttrc, just add the following line to it:

     set sendmail=/usr/local/bin/msmtp
  5. Add this function to ~/.bash_profile:

     mail2kindle () 
       echo ebook | mutt -s ebook -a "$1" --

    When adding this, you obviously need to replace with the email address of your kindle.

  6. At Amazon's My Kindle page, add the sender address to the list of eMail addresses that are authorized to send books to your Kindle.

  7. You can now send eBooks to your kindle with the following command:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment