# OAuth2 script for Mutt
This is an update of [Alexander Perlis' script](https://github.com/muttmua/mutt/blob/master/contrib/mutt_oauth2.py)
and conversion to a package. Instead of using GPG for token storage, this package uses Keyring.
## Installation
```shell
pip install mutt-oauth2
```
## Usage
```plain
Usage: mutt-oauth2 [OPTIONS]
Obtain and print a valid OAuth2 access token.
Options:
-a, --authorize Manually authorise new tokens.
-d, --debug Enable debug logging.
-t, --test Test authentication.
-u, --username TEXT Keyring username.
-v, --verbose Enable verbose logging.
-h, --help Show this message and exit.
```
Start by calling `mutt-oauth2 -a`. Be sure to have your client ID and and client secret available.
### Scopes required
| Provider | Scopes |
| --------- | ------------------------------------------------------------------- |
| Gmail | Gmail API |
| Microsoft | offline_access IMAP.AccessAsUser.All POP.AccessAsUser.All SMTP.Send |
To support other accounts, use the `--username` argument with a unique string such as the account
email address.
Test the script with the `--test` argument.
### mutt configuration
Add the following to `muttrc`:
```plain
set imap_authenticators="oauthbearer:xoauth2"
set imap_oauth_refresh_command="/path/to/mutt-oauth2"
set smtp_authenticators=${imap_authenticators}
set smtp_oauth_refresh_command=${imap_oauth_refresh_command}
```
Raw data
{
"_id": null,
"home_page": "https://github.com/Tatsh/mutt-oauth2",
"name": "mutt-oauth2",
"maintainer": null,
"docs_url": null,
"requires_python": "<4,>=3.10",
"maintainer_email": null,
"keywords": "email, gmail, mutt, outlook",
"author": "Andrew Udvare",
"author_email": "audvare@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/51/37/04f229ef21f393308830494d2abbe69e74c5c738f62c7892da232355356f/mutt_oauth2-0.0.2.tar.gz",
"platform": null,
"description": "# OAuth2 script for Mutt\n\nThis is an update of [Alexander Perlis' script](https://github.com/muttmua/mutt/blob/master/contrib/mutt_oauth2.py)\nand conversion to a package. Instead of using GPG for token storage, this package uses Keyring.\n\n## Installation\n\n```shell\npip install mutt-oauth2\n```\n\n## Usage\n\n```plain\nUsage: mutt-oauth2 [OPTIONS]\n\n Obtain and print a valid OAuth2 access token.\n\nOptions:\n -a, --authorize Manually authorise new tokens.\n -d, --debug Enable debug logging.\n -t, --test Test authentication.\n -u, --username TEXT Keyring username.\n -v, --verbose Enable verbose logging.\n -h, --help Show this message and exit.\n```\n\nStart by calling `mutt-oauth2 -a`. Be sure to have your client ID and and client secret available.\n\n### Scopes required\n\n| Provider | Scopes |\n| --------- | ------------------------------------------------------------------- |\n| Gmail | Gmail API |\n| Microsoft | offline_access IMAP.AccessAsUser.All POP.AccessAsUser.All SMTP.Send |\n\nTo support other accounts, use the `--username` argument with a unique string such as the account\nemail address.\n\nTest the script with the `--test` argument.\n\n### mutt configuration\n\nAdd the following to `muttrc`:\n\n```plain\nset imap_authenticators=\"oauthbearer:xoauth2\"\nset imap_oauth_refresh_command=\"/path/to/mutt-oauth2\"\nset smtp_authenticators=${imap_authenticators}\nset smtp_oauth_refresh_command=${imap_oauth_refresh_command}\n```\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Packaged, maintained version of contributed mutt_oauth2.py script.",
"version": "0.0.2",
"project_urls": {
"Documentation": "https://mutt-oauth2.readthedocs.org",
"Homepage": "https://github.com/Tatsh/mutt-oauth2",
"Issues": "https://github.com/Tatsh/mutt-oauth2/issues",
"Repository": "https://github.com/Tatsh/mutt-oauth2"
},
"split_keywords": [
"email",
" gmail",
" mutt",
" outlook"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "e83efdf4a261bac191cff519cf1133780418d3d73f4d07f23c1dd3d978fee9e0",
"md5": "27040a35469fac90cd2e45a9ea73b41b",
"sha256": "180f850f9eed3b9830d08d8cea3fd7f43d009c3a18fda1547d7b3e0dbb454eed"
},
"downloads": -1,
"filename": "mutt_oauth2-0.0.2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "27040a35469fac90cd2e45a9ea73b41b",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<4,>=3.10",
"size": 9003,
"upload_time": "2024-11-30T23:58:17",
"upload_time_iso_8601": "2024-11-30T23:58:17.441935Z",
"url": "https://files.pythonhosted.org/packages/e8/3e/fdf4a261bac191cff519cf1133780418d3d73f4d07f23c1dd3d978fee9e0/mutt_oauth2-0.0.2-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "513704f229ef21f393308830494d2abbe69e74c5c738f62c7892da232355356f",
"md5": "6b8ca9d097e3abe4515440013cd01df7",
"sha256": "c92e4f9f8457465eeffa66c38536a134417fb55b13ef78650fa7f9f994418e3b"
},
"downloads": -1,
"filename": "mutt_oauth2-0.0.2.tar.gz",
"has_sig": false,
"md5_digest": "6b8ca9d097e3abe4515440013cd01df7",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<4,>=3.10",
"size": 9665,
"upload_time": "2024-11-30T23:58:20",
"upload_time_iso_8601": "2024-11-30T23:58:20.388186Z",
"url": "https://files.pythonhosted.org/packages/51/37/04f229ef21f393308830494d2abbe69e74c5c738f62c7892da232355356f/mutt_oauth2-0.0.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-11-30 23:58:20",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "Tatsh",
"github_project": "mutt-oauth2",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "mutt-oauth2"
}