{"id":26013264,"url":"https://github.com/chatmail/provider-db","last_synced_at":"2025-10-15T01:46:34.714Z","repository":{"id":35122964,"uuid":"183651204","full_name":"chatmail/provider-db","owner":"chatmail","description":"Database of Email Providers and how well they work with DeltaChat","archived":false,"fork":false,"pushed_at":"2025-03-03T22:52:43.000Z","size":531,"stargazers_count":60,"open_issues_count":8,"forks_count":35,"subscribers_count":15,"default_branch":"master","last_synced_at":"2025-03-03T23:29:09.579Z","etag":null,"topics":["email"],"latest_commit_sha":null,"homepage":"https://providers.delta.chat","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/chatmail.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"custom":["https://delta.chat/en/contribute#donate-money"],"liberapay":"delta.chat","open_collective":"delta-chat"}},"created_at":"2019-04-26T15:19:19.000Z","updated_at":"2025-03-03T22:52:47.000Z","dependencies_parsed_at":"2023-12-18T05:06:57.221Z","dependency_job_id":"ed11cee3-3bc7-41eb-bf4a-43695883b94a","html_url":"https://github.com/chatmail/provider-db","commit_stats":{"total_commits":467,"total_committers":34,"mean_commits":"13.735294117647058","dds":0.6552462526766596,"last_synced_commit":"fe0e8cf1b0d9e3ee144b454ea524a0cd1889168f"},"previous_names":["deltachat/provider-overview","chatmail/provider-db"],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chatmail%2Fprovider-db","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chatmail%2Fprovider-db/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chatmail%2Fprovider-db/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chatmail%2Fprovider-db/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/chatmail","download_url":"https://codeload.github.com/chatmail/provider-db/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":242130181,"owners_count":20076569,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["email"],"created_at":"2025-03-06T01:27:33.153Z","updated_at":"2025-10-15T01:46:34.692Z","avatar_url":"https://github.com/chatmail.png","language":"HTML","funding_links":["https://delta.chat/en/contribute#donate-money","https://liberapay.com/delta.chat","https://opencollective.com/delta-chat"],"categories":["HTML"],"sub_categories":[],"readme":"# E-mail provider database \n\nThis repository collects information on email providers and their interoperability which is used by the chatmail/core library. \n\n**The header of the files,** the _front matter_, is included into [chatmail/core](https://github.com/chatmail/core),\nto provide them to the [chatmail apps](https://chatmail.at/clients) on the different platforms.\nUpdate is done by setting the desired commit as `REV=`\nin [chatmail/core/scripts/create-provider-data-rs.py](https://github.com/chatmail/core/blob/main/scripts/create-provider-data-rs.py) and the run the script.\n\n**The page's content** is built into a web page\nthat shows the status of the respective provider regarding its usage with chatmail apps,\nand details possibly required preparation steps, or explains why the interoperability is broken.\n\n\n## Format\n\nThe files build on this format:\n\n```yaml\n---\nname: [name of the provider]\nstatus: [OK or PREPARATION or BROKEN]\ndomains: \n  - an_array\n  - of_domains\n  - used_by_this_provider\nopt:\n  max_smtp_rcpt_to: [optional: default is 50]\n  strict_tls: [optional: default is true]\nserver:\n  # Repeat the following block for each server (usually one for imap, one for smtp).\n  # If no servers are defined, autoconfig, autodiscover or guessing is used;\n  # this will lead to the same server-configuration as if there is no provider-entry at all.\n  - type: [IMAP or SMTP]\n    socket: [SSL or STARTTLS or PLAIN]\n    hostname: [hostname to connect to]\n    port: [port number]\n    username_pattern: [optional: EMAIL or EMAILLOCALPART, default is EMAIL]\nbefore_login_hint: |\n  [required for status PREPARATION or BROKEN: a string that will be displayed before the user logs in.\n  Multiple lines are possible (line-breaks will be honoured), but keep in mind this text appears within the login form on possibly small displays.\n  ]\nafter_login_hint: |\n  [optional: a string that will be displayed in the device chat after the user logged in.\n  Multiple lines are possible (line-breaks will be honoured).\n  There's more room for text in the device chat than in the login form, but please keep the text concise nonetheless.\n  ]\nconfig_defaults:\n  # optional, see below for details\n  key: value\n  other_key: other_value\nlast_checked: [optional: date when the information was last checked: YYYY-MM]\nskip_auto_test: [optional: skip the provider in the automated tests. default is false]\nwebsite: [optional: website of the provider]\n---\n[Markdown-formatted content that gets displayed as provider-page on the web, linked from the apps (if status is not OK)]\n```\n\n## Status options\n\n### OK\n\nIf the status is `OK`, a standard text is used as page content. You don't need to put in anything.\n\n`before_login_hint` as well as additional content is not available from within the apps for status `OK`.\nUse status `PREPARATION` to show `before_login_hint`\nor consider using `after_login_hint`, which is shown also for status `OK`.\n\n### PREPARATION\n\nThis status means that the user must do some preparing steps\nbefore they can use a chatmail app with their provider.\nFor example enabling IMAP/SMTP at their provider's settings, or creating an app-specific password.\n\nThe required steps must be described as page content in a friendly, helpful howto-style.\n\nAdditionally a short, informative sentence must be written as `before_login_hint`, so tech-savy users already know what to do, and others get an idea what to expect from the linked provider page.\n\n### BROKEN\n\nThis status means that chatmail/core will not work with this provider.\n\nThe problems blocking the usage must be summarized as page content in a friendly tone.\n\nAdditionally a short, informative sentence must be written as `before_login_hint`, so tech-savy users already know what's up, and others get an idea what to expect from the linked provider page.\n\n**Note:** Bear in mind the `before_login_hint` is displayed by the UIs as normal text, **without** html, markdown, whatever. Therefore, links in the `before_login_hint` are *not allowed*, especially as they tend to be wider than some smartphone displays.\n\n\n## Configuration Defaults\n\nBeside the server-configuration, chatmail/core has several other options\nthat can typically be using chatmail apps at runtime.\nIn most cases the global-default for these options are fine for most providers,\nhowever, if not, you have the possibility to define provider-specific-defaults\nwith the `config_defaults` section.\n\nThe api for that is a bit low-level: you have to define key-value-pairs\nwhere the keys have to match the names used in the API, the values have to be\nplain numeric values, see\n[Chatmail API](https://c.delta.chat/classdc__context__t.html#aff3b894f6cfca46cab5248fdffdf083d)\nfor details.\n\nThe provider-specific-defaults are applied _once_\nafter the first successful configuration,\nthey are not applied later on re-configures or on updates -\nreason for that is to respect user-choice of changing these values.\n\n\n## OAuth2\n\nWith the top-level option `oauth2=AUTHORIZER` you can specify,\nthat emails on the given domains support OAuth2 with the given authorizers.\nSupported authorizer is `yandex`.\n\nIn contrast to other authorization methods, you cannot use OAuth2\nonly because the server may support it.\nNew OAuth2 authorizers require adaptions in chatmail/core\nand typically also bureaucratic effort.\n\n### Use OAuth2 together with other options\n\nIf for an entered address, OAuth2 is supported,\nand the used client supports OAuth2,\nthe user will be asked if he wants to continue with that.\n\nOnly if that is _cancelled_, the `before_login_hint` is shown;\nso it is not needed to say sth. about OAuth2 before login.\n\nAll other options are applied as usual.\n\n\n## Limit RCPT TO header\n\nWith the `opt` option `max_smtp_rcpt_to: MAX`\nyou can set the maximum number of recipients\nthat should be used in an `RCPT TO:` smtp header.\nIf a message needs to be sent to more recipients,\nmultiple messages are sent out,\neach with exactly the same MIME-message\n(with `To:` mime headers that may contain all recipients).\n\nIf this limit is not specified, the library picks an reasonable default.\n\n\n## Strict TLS\n\nBy default, all providers in to the provider-database\nare assumed to support \"Strict TLS\".\nIf that is not true for a specific provider,\nyou have to add the `opt` option `strict_tls: false`.\n\nConnections with `socket: PLAIN` are not affected by the `strict_tls` option,\nit's not ignored, there is just no TLS at all.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchatmail%2Fprovider-db","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fchatmail%2Fprovider-db","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchatmail%2Fprovider-db/lists"}