Code Monkey home page Code Monkey logo

protonmail-api's Introduction

protonmail-api

Unofficial API for interacting with ProtonMail.

Allows interaction with ProtonMail through a simple Node.js API. Leverages the official WebClient, keeping with the spirit of security and privacy. Currently supports sending email, managing email/conversations, and managing labels and folders. See the documentation for full functionality.

This project is not endorsed or supported by Proton Technologies AG.

Quick Start

Setup

npm install protonmail-api

Send an Email

const ProtonMail = require('protonmail-api');

(async () => {
  const pm = await ProtonMail.connect({
    username: '[email protected]',
    password: 'somethingsecure'
  })

  await pm.sendEmail({
    to: '[email protected]',
    subject: 'Send email tutorial',
    body: 'Hello world'
  })

  pm.close()
})()

More Examples

Numerous examples can be found in the tutorials section of the documentation.

Documentation

Full documentation found here

How?

This library uses Puppeteer (headless Chromium) to load and control the official ProtonMail WebClient.

The first attempt at building this was by trying to reverse engineer the API from the WebClient. This proved to be difficult and fragile. By utilizing the AngularJS modules (through the headless browser) this library is able to leverage all the work that goes into the official WebClient. This also means complex and sensitive things (like cryptography) are not handled by this library. The main drawback to this approach is the added weight of Puppeteer.

Contributing

This project is looking for maintainers and contributors. Please contact [email protected] if you are interested.

To run integration tests you need to provide a ProtonMail account. It is best to use a dedicated testing account without any filters. The credentials are set as environment variables PM_USERNAME and PM_PASSWORD.

Example:

[email protected] PM_PASSWORD=kgjSOE223qWer npm run test

protonmail-api's People

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.