Skip to content

remailable/remailable

Repository files navigation

email documents to your ReMarkable tablet

GitHub repo size GitHub last commit This repo is pretty dope This repo is licensed under Apache 2.0

You can use this by emailing a PDF to remailable@[your-custom-domain]. Read on for instructions.

I host a version of this that you can use for free. Emails are not kept and do not go to a real mailbox. (Email binaries are deleted after 24 hours automatically.)

If you would like to make a donation to keep this service alive, please feel free to donate via paypal.

Setup

Write a new email to remailable@getneutrality.org with nothing in the body and your new-device ReMarkable code in the subject line.

Usage

Email remailable@getneutrality.org with a PDF attachment. It will be delivered to your ReMarkable tablet.

Limitations

  • Under 30MB please!
  • That's it :)

Issues?

If you encounter issues, please feel free to reach out. @j6m8 on reddit, submit an issue here, or shoot me an email.

To delete your account, send a message with the subject line "Unsubscribe". Your account will be deleted and you will not receive any more emails from Remailable.

Making Your Own

I'm trying to migrate as much of this as possible to automation/scripts. Unfortunately, much of this must be done through the AWS UI console, and because there's a human in the loop, it can take a few days!

To Set Up Before You Start

  • You'll need to set up an SES domain (AWS Docs).
  • Verify the domain (AWS Docs).
  • If you're planning on distributing to public users (i.e. don't know your recipients' emails a priori), you must also move your SES account into production mode. Note that this is not necessary if you are just setting up a personal deploy: In that case, you can just add your personal email address to the list of approved sandbox recipients. Note that this process has an AWS human in the loop, and will take a while.
  • Create the users table in DynamoDB. You can do this automatically with python3 provision.py create-table.
  • Verify your sender email address (same as you use for Config.EMAIL_SENDER in config.py). You can do this automatically with python3 provision.py verify-sender.
  • Set up a S3 hook upon email receipt so that emails are routed to an S3 bucket. (See documentation here).
  • Add the SESSendEmail (or just AmazonSESFullAccess) policies to your Zappa-created role. (This role will be called something like remailable-blah-ZappaLambdaExecutionRole). To do this:
  • Go to the IAM panel and search for the Remailable role. (It'll likely be called something like remailable-???-ZappaLambdaExecutionRole). Click!
  • On the permissions tab, click "Attach policies" and attach the SES policy you want (SESSendEmail or AmazonSESFullAccess, depending on the features you want to enable.)
  • Click "Attach Policy" at the bottom to confirm.
  • Create a config.py file in this directory with the following contents:
class Config:
    AWS_REGION = "us-east-1"

    BUCKET_NAME = "[YOUR BUCKET NAME]"
    BUCKET_PREFIX = "attachments" # optional; based upon your S3 rule above

    # The email-sender that you verified above. Leave as empty string
    # if Config.SEND_EMAILS is False.
    EMAIL_SENDER = "Remailable <YOUR_USER@DOMAIN.com>"

    # Set to False if you won't be sending receipt emails:
    SEND_EMAILS = True

To Set Up While You Start

zappa init

You'll need to configure your Zappa file to look like the following:

{
    "production": {
        "app_function": "lambda_main.APP",
        "aws_region": "us-east-1",
        "project_name": "remailable", // call this something cute :)
        "runtime": "python3.7",
        "s3_bucket": [NEW BUCKET NAME] // different bucket name than above
        "events": [
            {
                "function": "lambda_main.upload_handler",
                "event_source": {
                    "arn": "arn:aws:s3:::[Config.BUCKET_NAME GOES HERE]",
                    "events": ["s3:ObjectCreated:*"]
                }
            }
        ]
    }
}

Why?

I love emailing documents to my Kindle. It's a very natural way of sharing a PDF for many people, and in my opinion it's a huge shortcoming of the ReMarkable ecosystem. So now it's fixed :)

You May Also Like...

  • Goosepaper: A daily, customizable, morning news brief delivered to your ReMarkable