GithubHelp home page GithubHelp logo

Support for any imap server about inbox-zero HOT 9 OPEN

elie222 avatar elie222 commented on July 28, 2024 5
Support for any imap server

from inbox-zero.

Comments (9)

elie222 avatar elie222 commented on July 28, 2024 3

I know you guys just decided to pause on this, but I'd like to add my voice to the request. I broke up with Gmail a long time ago and have been missing out on so many good tools as a result. It's something I'd be very open to contributing to if you guys are open/prepared for contributors.

Hey, open to this feature being implemented if it's broken down into smaller pieces.
Starting with a small POC and moving on to a full implementation.

What we'd need:

  • Ability to login with email/password
  • A lot of the gmail functionality is in the utils/gmail folder, but not all of it. Probably moving all gmail calls to this folder would make sense. And it could even become its own package in our Turborepo.
  • Abstracting all the gmail functions so that when we do something like getThreads(), it doesn't matter whether it's getting the data from Gmail or iMap.

What I'd imagine a POC to do:

  1. Choose one screen where we display emails. eg. the newsletter screen
  2. Replace getThreads() with a generic getThreads that can pull from an imap.
  3. Hopefully this still shows the same emails once implemented.
  4. No need to update log in screen at this first stage of POC. Can just hardcode / use env vars to set the imap username and password.

Might be worth opening a test gmail account, and using imap on that just to make sure we're getting the same data back.

Challenges

Things won't map 1:1 with Gmail API, so we'd have to figure out how to handle the differences.
Might also be slowness if we use imap without caching email data, but we don't need to optimise for this at this stage. Can figure that out later.

Also worth a look:

https://github.com/postalsys/emailengine
"Headless email client application that makes IMAP and SMTP resources available over REST."

from inbox-zero.

joeyfigaro avatar joeyfigaro commented on July 28, 2024 1

I've started pulling what currently exists into Figma for us to use in planning how this feature will work. I'll be drafting some ideas to highlight how onboarding and initial configuration will work.

Inbox Zero/Onboarding (Figma)

CleanShot 2024-04-13 at 13 48 07@2x

from inbox-zero.

riordan avatar riordan commented on July 28, 2024

IMAP would be incredible, as it would open this up to nearly all other email services, however if there are aspects of the IMAP API that make it difficult to implement, you might want to consider looking at JMAP, a newer protocol that's closer to the modern Google Gmail API in terms of its capabilities, doing things like better server-side indexing, handling of labels, etc. Not many providers are yet, but it'd be a surefire way to get Fastmail users enthusiastically adopting it.

from inbox-zero.

elie222 avatar elie222 commented on July 28, 2024

IMAP would be incredible, as it would open this up to nearly all other email services, however if there are aspects of the IMAP API that make it difficult to implement, you might want to consider looking at JMAP, a newer protocol that's closer to the modern Google Gmail API in terms of its capabilities, doing things like better server-side indexing, handling of labels, etc. Not many providers are yet, but it'd be a surefilre way to get Fastmail users enthusiastically adopting it.

Thanks for sharing! It seems like few providers support JMAP right now. Do you know which email providers do? May make more sense to stick with IMAP till we get that mainstream adoption.

from inbox-zero.

elie222 avatar elie222 commented on July 28, 2024

Let's put this on hold. It's a really big feature. Changes so much of the app till we can support this :(

from inbox-zero.

joeyfigaro avatar joeyfigaro commented on July 28, 2024

I know you guys just decided to pause on this, but I'd like to add my voice to the request. I broke up with Gmail a long time ago and have been missing out on so many good tools as a result. It's something I'd be very open to contributing to if you guys are open/prepared for contributors.

from inbox-zero.

joeyfigaro avatar joeyfigaro commented on July 28, 2024

I know you guys just decided to pause on this, but I'd like to add my voice to the request. I broke up with Gmail a long time ago and have been missing out on so many good tools as a result. It's something I'd be very open to contributing to if you guys are open/prepared for contributors.

Hey, open to this feature being implemented if it's broken down into smaller pieces. Starting with a small POC and moving on to a full implementation.

What we'd need:

  • Ability to login with email/password
  • A lot of the gmail functionality is in the utils/gmail folder, but not all of it. Probably moving all gmail calls to this folder would make sense. And it could even become its own package in our Turborepo.
  • Abstracting all the gmail functions so that when we do something like getThreads(), it doesn't matter whether it's getting the data from Gmail or iMap.

What I'd imagine a POC to do:

  1. Choose one screen where we display emails. eg. the newsletter screen
  2. Replace getThreads() with a generic getThreads that can pull from an imap.
  3. Hopefully this still shows the same emails once implemented.
  4. No need to update log in screen at this first stage of POC. Can just hardcode / use env vars to set the imap username and password.

Might be worth opening a test gmail account, and using imap on that just to make sure we're getting the same data back.

Challenges

Things won't map 1:1 with Gmail API, so we'd have to figure out how to handle the differences. Might also be slowness if we use imap without caching email data, but we don't need to optimise for this at this stage. Can figure that out later.

Also worth a look:

https://github.com/postalsys/emailengine "Headless email client application that makes IMAP and SMTP resources available over REST."

I'm going to start getting comfortable with the codebase and taking a look at putting something together if there's anything else you'd like to share–or if you have a preferred process for checking in on progress so I don't get too far out in a wrong direction. πŸ’ͺ🏻

from inbox-zero.

DarkPhyber-hg avatar DarkPhyber-hg commented on July 28, 2024

I self host exchange. While IMAP is more universal, how hard would it be to support activesync or OWA? Wondering of it's closer to Gmail api

from inbox-zero.

elie222 avatar elie222 commented on July 28, 2024

I've started pulling what currently exists into Figma for us to use in planning how this feature will work. I'll be drafting some ideas to highlight how onboarding and initial configuration will work.

Inbox Zero/Onboarding (Figma)

CleanShot 2024-04-13 at 13 48 07@2x

Very cool!

from inbox-zero.

Related Issues (20)

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.