Coder Social home page Coder Social logo

wdes / mail-autodiscover-autoconfig Goto Github PK

View Code? Open in Web Editor NEW
20.0 20.0 1.0 234 KB

A docker image to deploy to have a dynamic autodiscover XML and autoconfig XML host. Supports Outlook, Thunderbird, Apple, some Android apps, and more..

Home Page: https://hub.docker.com/r/wdes/mail-autodiscover-autoconfig

License: Mozilla Public License 2.0

Makefile 6.71% Rust 85.30% Dockerfile 7.99%
autoconf autoconfiguration autodiscover autodiscover-service autodiscovery docker docker-image email mail rust thunderbird

mail-autodiscover-autoconfig's People

Contributors

snyk-bot avatar szepeviktor avatar williamdes avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

extremexbb

mail-autodiscover-autoconfig's Issues

Suggestion: Adding RFC6186

My suggestion: Generating a DNS zone file to include the email client autoconfiguration specified in RFC6186, or a step-by-step tutorial.
(The update RFC8314 add "_submissions._tcp" for SMTP over implicit TLS)

Examples:

_imap._tcp SRV 0 1 143 imap.example.com.
_imaps._tcp SRV 0 1 993 imap.example.com.
_submission._tcp SRV 0 1 587 mail.example.com.
_submissions._tcp SRV 0 1 465 mail.example.com.

When the "s" is present, implicit TLS is utilized (SSL/TLS), and when it is absent, opportunist TLS is utilized (Plain or STARTTLS).

Edit: gmail.com is a real world example, server-side. I do not have a client-side example for the moment.

Apple UUID

I have read online, since iOS v15+, the number of configuration files sharing the same payload is limited.
The old scripts found online should not work anymore.
In your doc, you mentioned that a random UUID should work. Unfortunately, I do not have an iOS/iPad phone/tablet to test it.
But I do not think a random UUID would work, because I think the UUID is a part of a signature. Have you tested this functionality ? I do not have any source to present, I did my research some time ago. If it works, it would be perfect for some clients who do not like the manual configurations in Apple Mail.

Side note : Your project is fabulous 🔥

Specify server ports

Hello,

I deployed your container, and it’s working great for both iOS and thunderbird.
In the meantime I have an issue with outlook (the old way to configure via Control Panel) :
It does detect that it’s an IMAP server, but fails to configure it properly (port and authentication) for IMAp and SMTP.
So, is there a way to specify ports for both protocols, and that the submission server needs authentication ?
I tried adding port to the server details on the compose file, but it doesn’t seems to change anything
Here's my compose file :

version: "3"
services:
  mail-autodiscover-autoconfig:
    image: wdes/mail-autodiscover-autoconfig:latest
    mem_limit: 120M
    mem_reservation: 50M
    restart: on-failure:40
    ports:
      - 8088:80
    environment:
      ROCKET_PROFILE: production
      ROCKET_ADDRESS: 0.0.0.0
      ROCKET_PORT: "80"
      # https://www.uuidgenerator.net/
      # Re-generate the two UUIDs below
      APPLE_MAIL_UUID: 6761f511-ffd8-4c01-bf1e-1563182044ca
      APPLE_PROFILE_UUID: 856ac4fe-af7f-4290-802f-975e9df962fa
      # CUSTOM_DOMAINS: foo.tld
      # (optional: CUSTOM_DOMAINS) List of domains that will use {imap,pop,smtp}.domain.tld instead of the hosts below
      IMAP_HOSTNAME: mail.domain.fr:993
      POP_HOSTNAME: mail.domain.fr
      SMTP_HOSTNAME: mail.domain.fr:465
networks: {}

Thanks in advance

Tested email clients behavior

Does Android Nine prefix its request with /v1.1/ ?
Does Android MyMail and others send a GET request instead of a POST request to the URL /autodiscover/autodiscover.xml ?
Does Android Nine use the JSON API of Autodiscover but not the XML API ?

It was implicitly stated by your code comments, but I wanted to confirm this.

Thank you again for your project !

Edit: typo

/apple URL does not work

Hello,
When navigating to /apple or /dns-zone, the application just returns 404 not found; however when navigating to mobile config (with email filled in) it downloads the profile.

Integrate with DirectAdmin ?

Hi there,
I have not tested this project yet as I am wondering how I would implement it. Now I am running a control panel called DirectAdmin which is a web hosting control panel. I was wondering if this could be adapted to be used with it? As it does not have a native autodiscovery feature.

I was thinking if it can I would test and provide feedback to both you and the control panel developers.

Multi Domain Support

Hey,

I started nearly the same project a few months ago, but only implemented Thunderbirds Autodiscover so far, so yours is already way more advanced than mine.

But one feature I implemented, which was also lacking from all the other already available tools I found was support for multiple domains. Most of the times a mailserver serves multiple domains and the fact that they use the same mailserver, results in the same config for all of them, therefore running a tool x times for every domain felt wrong to me and would massively increase the work when e.g. onboarding a new domain.

I did some research regarding the different mailconfig methods and came to the conclusion that hosting the tool once, on one domain and pointing all the other domains via one CNAME and a SRV to the "main domain" where the tool runs, should work. But maybe you have more knowledge about other methods that would not be compatible with this. I documented most of my findings and the way the DNS needs to be configured in the README of my project if you want to have a look.

Sadly I can't write any Rust so I'm not able to work on a PR for this, but if you could consider this feature I could stop working in parallel on my own tool and start using yours on multiple mailservers of mine :)

Best,
fleaz

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.