Repository files navigation

Imap-CLI

Build StatusDocumentation Status

Description

Command line interface and API for imap accounts. It provide the following actions through a minimal python library:

  • Get imap account status (New mails, mail counting… etc…)
  • Get list of mails in INBOX (or any other directory)
  • Search through mail
  • Read mail
  • Flag mail (Read, Unread, Delete, etc…)
  • Copy, Move and Delete mail

You can read about my initial motivation to write this software here.

A presentation of Imap-CLI is available here

Example

$ imapcli search INBOX -a Caroline
8465: Caroline Chemin <xxx@gmail.com> atelier dégustation, école du thé
9108: Caroline Chemin <xxx@gmail.com> nouveau salon de thé
$ imapcli read 8465
From : Caroline Chemin <xxx@gmail.com>
Subject : atelier dégustation, école du thé
Date : Mon, 12 Feb 2018 17:47:19 +0100
ça t'intéresserais ?
http://www.lautrethe.com/accords-the-et-fromage-22-03-2018.htm

Quickstart

Install imap-cli with the following command :

pip install imap-cli

Then, configure imap-cli creating a configuration file in ~/.config/imap-cli containing :

[imap]
hostname = imap.example.org
username = username
password = secret
ssl = True

If you want to add a minimal autocompletion, you can copy imapcli_bash_completion.sh in the file /etc/bash_completion.d/imapcli or simply source.

If you want to benefit from the wrapper script described below, copy the script imapcli in your PATH

Quickstart (using Docker)

Pull imap-cli image:

docker pull gentux/imap-cli

As the first quickstart section, you'll need to configure imap-cli.

alias imap-cli="docker run -v ${HOME}/.config/imap-cli:/root/.config/imap-cli -t gentux/imap-cli imap-cli

And voilà, you can use imap-cli without installing or bothering with python.

Usage CLI

Usage: imapcli [options] <command> [<command_options>...]
Available commands are:
status List unseen, recent and total number of mail per directory in IMAP account
list List mail within a specified directory
search Search for mail
read Display Header and Body of specified mail(s)
flag Set or unset flag on specified mail(s)
Options:
-h, --help Show help options
--version Print program version
See 'imapcli help <command>' to get further information about specified command"
----
imap-cli 0.7
Copyright (C) 2014 Romain Soufflet
License MIT
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Usage Python API

This is work in progress, so API migth change. Python API aims to be as complete as possible to ease the creation of API, caching system and clients. You can find example in examples directory.

import imap_cli
from imap_cli import config
config_filename = '~/.config/imap-cli'
connect_conf = config.new_context_from_file(config_filename, section='imap')
display_conf = config.new_context_from_file(config_filename, section='display')
imap_account = imap_cli.connect(**connect_conf)
for directory_info in imap_cli.status(imap_account):
print display_conf['format_status'].format(**directory_info)

Configuration

The file config-example.ini show you available parameters and their default value when they have one.

You can also find in this file some comment describing all possibilities about each parameters.

File configuration is not the only possibility. As the package imap-cli is designed to be an API, all configuration data are shared in a context object. You can load this context progamatically if you want.

Further documentation

Full documentation available here.

Contributing

All contributions are welcome.

If your patche(s) contain new features, ensure you have written correspondig unit test. Also ensure all tests pass using tox

You can also open new issues for questions, bugs or new feature.

Roadmap

The actual version of Imap-CLI is 0.7.

Imap-CLI aims to map all IMAP protocols functionnality within a simple python API, and points in development are listed below

Creator

Romain Soufflet

Legal notices

Released under the MIT License.

About

Command line interface for imap account

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

Imap-CLI

Build StatusDocumentation Status

Description

Command line interface and API for imap accounts. It provide the following actions through a minimal python library:

  • Get imap account status (New mails, mail counting… etc…)
  • Get list of mails in INBOX (or any other directory)
  • Search through mail
  • Read mail
  • Flag mail (Read, Unread, Delete, etc…)
  • Copy, Move and Delete mail

You can read about my initial motivation to write this software here.

A presentation of Imap-CLI is available here

Example

$ imapcli search INBOX -a Caroline
8465: Caroline Chemin <xxx@gmail.com> atelier dégustation, école du thé
9108: Caroline Chemin <xxx@gmail.com> nouveau salon de thé
$ imapcli read 8465
From : Caroline Chemin <xxx@gmail.com>
Subject : atelier dégustation, école du thé
Date : Mon, 12 Feb 2018 17:47:19 +0100
ça t'intéresserais ?
http://www.lautrethe.com/accords-the-et-fromage-22-03-2018.htm

Quickstart

Install imap-cli with the following command :

pip install imap-cli

Then, configure imap-cli creating a configuration file in ~/.config/imap-cli containing :

[imap]
hostname = imap.example.org
username = username
password = secret
ssl = True

If you want to add a minimal autocompletion, you can copy imapcli_bash_completion.sh in the file /etc/bash_completion.d/imapcli or simply source.

If you want to benefit from the wrapper script described below, copy the script imapcli in your PATH

Quickstart (using Docker)

Pull imap-cli image:

docker pull gentux/imap-cli

As the first quickstart section, you'll need to configure imap-cli.

alias imap-cli="docker run -v ${HOME}/.config/imap-cli:/root/.config/imap-cli -t gentux/imap-cli imap-cli

And voilà, you can use imap-cli without installing or bothering with python.

Usage CLI

Usage: imapcli [options] <command> [<command_options>...]
Available commands are:
status List unseen, recent and total number of mail per directory in IMAP account
list List mail within a specified directory
search Search for mail
read Display Header and Body of specified mail(s)
flag Set or unset flag on specified mail(s)
Options:
-h, --help Show help options
--version Print program version
See 'imapcli help <command>' to get further information about specified command"
----
imap-cli 0.7
Copyright (C) 2014 Romain Soufflet
License MIT
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Usage Python API

This is work in progress, so API migth change. Python API aims to be as complete as possible to ease the creation of API, caching system and clients. You can find example in examples directory.

import imap_cli
from imap_cli import config
config_filename = '~/.config/imap-cli'
connect_conf = config.new_context_from_file(config_filename, section='imap')
display_conf = config.new_context_from_file(config_filename, section='display')
imap_account = imap_cli.connect(**connect_conf)
for directory_info in imap_cli.status(imap_account):
print display_conf['format_status'].format(**directory_info)

Configuration

The file config-example.ini show you available parameters and their default value when they have one.

You can also find in this file some comment describing all possibilities about each parameters.

File configuration is not the only possibility. As the package imap-cli is designed to be an API, all configuration data are shared in a context object. You can load this context progamatically if you want.

Further documentation

Full documentation available here.

Contributing

All contributions are welcome.

If your patche(s) contain new features, ensure you have written correspondig unit test. Also ensure all tests pass using tox

You can also open new issues for questions, bugs or new feature.

Roadmap

The actual version of Imap-CLI is 0.7.

Imap-CLI aims to map all IMAP protocols functionnality within a simple python API, and points in development are listed below

Creator

Romain Soufflet

Legal notices

Released under the MIT License.

About

Command line interface for imap account

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Imap-CLI

Build StatusDocumentation Status

Description

Command line interface and API for imap accounts. It provide the following actions through a minimal python library:

  • Get imap account status (New mails, mail counting… etc…)
  • Get list of mails in INBOX (or any other directory)
  • Search through mail
  • Read mail
  • Flag mail (Read, Unread, Delete, etc…)
  • Copy, Move and Delete mail

You can read about my initial motivation to write this software here.

A presentation of Imap-CLI is available here

Example

$ imapcli search INBOX -a Caroline
8465: Caroline Chemin <xxx@gmail.com> atelier dégustation, école du thé
9108: Caroline Chemin <xxx@gmail.com> nouveau salon de thé
$ imapcli read 8465
From : Caroline Chemin <xxx@gmail.com>
Subject : atelier dégustation, école du thé
Date : Mon, 12 Feb 2018 17:47:19 +0100
ça t'intéresserais ?
http://www.lautrethe.com/accords-the-et-fromage-22-03-2018.htm

Quickstart

Install imap-cli with the following command :

pip install imap-cli

Then, configure imap-cli creating a configuration file in ~/.config/imap-cli containing :

[imap]
hostname = imap.example.org
username = username
password = secret
ssl = True

If you want to add a minimal autocompletion, you can copy imapcli_bash_completion.sh in the file /etc/bash_completion.d/imapcli or simply source.

If you want to benefit from the wrapper script described below, copy the script imapcli in your PATH

Quickstart (using Docker)

Pull imap-cli image:

docker pull gentux/imap-cli

As the first quickstart section, you'll need to configure imap-cli.

alias imap-cli="docker run -v ${HOME}/.config/imap-cli:/root/.config/imap-cli -t gentux/imap-cli imap-cli

And voilà, you can use imap-cli without installing or bothering with python.

Usage CLI

Usage: imapcli [options] <command> [<command_options>...]
Available commands are:
status List unseen, recent and total number of mail per directory in IMAP account
list List mail within a specified directory
search Search for mail
read Display Header and Body of specified mail(s)
flag Set or unset flag on specified mail(s)
Options:
-h, --help Show help options
--version Print program version
See 'imapcli help <command>' to get further information about specified command"
----
imap-cli 0.7
Copyright (C) 2014 Romain Soufflet
License MIT
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Usage Python API

This is work in progress, so API migth change. Python API aims to be as complete as possible to ease the creation of API, caching system and clients. You can find example in examples directory.

import imap_cli
from imap_cli import config
config_filename = '~/.config/imap-cli'
connect_conf = config.new_context_from_file(config_filename, section='imap')
display_conf = config.new_context_from_file(config_filename, section='display')
imap_account = imap_cli.connect(**connect_conf)
for directory_info in imap_cli.status(imap_account):
print display_conf['format_status'].format(**directory_info)

Configuration

The file config-example.ini show you available parameters and their default value when they have one.

You can also find in this file some comment describing all possibilities about each parameters.

File configuration is not the only possibility. As the package imap-cli is designed to be an API, all configuration data are shared in a context object. You can load this context progamatically if you want.

Further documentation

Full documentation available here.

Contributing

All contributions are welcome.

If your patche(s) contain new features, ensure you have written correspondig unit test. Also ensure all tests pass using tox

You can also open new issues for questions, bugs or new feature.

Roadmap

The actual version of Imap-CLI is 0.7.

Imap-CLI aims to map all IMAP protocols functionnality within a simple python API, and points in development are listed below

Creator

Romain Soufflet

Legal notices

Released under the MIT License.

About

Command line interface for imap account

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Imap-CLI

Build StatusDocumentation Status

Description

Command line interface and API for imap accounts. It provide the following actions through a minimal python library:

  • Get imap account status (New mails, mail counting… etc…)
  • Get list of mails in INBOX (or any other directory)
  • Search through mail
  • Read mail
  • Flag mail (Read, Unread, Delete, etc…)
  • Copy, Move and Delete mail

You can read about my initial motivation to write this software here.

A presentation of Imap-CLI is available here

Example

$ imapcli search INBOX -a Caroline
8465: Caroline Chemin <xxx@gmail.com> atelier dégustation, école du thé
9108: Caroline Chemin <xxx@gmail.com> nouveau salon de thé
$ imapcli read 8465
From : Caroline Chemin <xxx@gmail.com>
Subject : atelier dégustation, école du thé
Date : Mon, 12 Feb 2018 17:47:19 +0100
ça t'intéresserais ?
http://www.lautrethe.com/accords-the-et-fromage-22-03-2018.htm

Quickstart

Install imap-cli with the following command :

pip install imap-cli

Then, configure imap-cli creating a configuration file in ~/.config/imap-cli containing :

[imap]
hostname = imap.example.org
username = username
password = secret
ssl = True

If you want to add a minimal autocompletion, you can copy imapcli_bash_completion.sh in the file /etc/bash_completion.d/imapcli or simply source.

If you want to benefit from the wrapper script described below, copy the script imapcli in your PATH

Quickstart (using Docker)

Pull imap-cli image:

docker pull gentux/imap-cli

As the first quickstart section, you'll need to configure imap-cli.

alias imap-cli="docker run -v ${HOME}/.config/imap-cli:/root/.config/imap-cli -t gentux/imap-cli imap-cli

And voilà, you can use imap-cli without installing or bothering with python.

Usage CLI

Usage: imapcli [options] <command> [<command_options>...]
Available commands are:
status List unseen, recent and total number of mail per directory in IMAP account
list List mail within a specified directory
search Search for mail
read Display Header and Body of specified mail(s)
flag Set or unset flag on specified mail(s)
Options:
-h, --help Show help options
--version Print program version
See 'imapcli help <command>' to get further information about specified command"
----
imap-cli 0.7
Copyright (C) 2014 Romain Soufflet
License MIT
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Usage Python API

This is work in progress, so API migth change. Python API aims to be as complete as possible to ease the creation of API, caching system and clients. You can find example in examples directory.

import imap_cli
from imap_cli import config
config_filename = '~/.config/imap-cli'
connect_conf = config.new_context_from_file(config_filename, section='imap')
display_conf = config.new_context_from_file(config_filename, section='display')
imap_account = imap_cli.connect(**connect_conf)
for directory_info in imap_cli.status(imap_account):
print display_conf['format_status'].format(**directory_info)

Configuration

The file config-example.ini show you available parameters and their default value when they have one.

You can also find in this file some comment describing all possibilities about each parameters.

File configuration is not the only possibility. As the package imap-cli is designed to be an API, all configuration data are shared in a context object. You can load this context progamatically if you want.

Further documentation

Full documentation available here.

Contributing

All contributions are welcome.

If your patche(s) contain new features, ensure you have written correspondig unit test. Also ensure all tests pass using tox

You can also open new issues for questions, bugs or new feature.

Roadmap

The actual version of Imap-CLI is 0.7.

Imap-CLI aims to map all IMAP protocols functionnality within a simple python API, and points in development are listed below

Creator

Romain Soufflet

Legal notices

Released under the MIT License.

About

Command line interface for imap account

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

Imap-CLI

Build StatusDocumentation Status

Description

Command line interface and API for imap accounts. It provide the following actions through a minimal python library:

  • Get imap account status (New mails, mail counting… etc…)
  • Get list of mails in INBOX (or any other directory)
  • Search through mail
  • Read mail
  • Flag mail (Read, Unread, Delete, etc…)
  • Copy, Move and Delete mail

You can read about my initial motivation to write this software here.

A presentation of Imap-CLI is available here

Example

$ imapcli search INBOX -a Caroline
8465: Caroline Chemin <xxx@gmail.com> atelier dégustation, école du thé
9108: Caroline Chemin <xxx@gmail.com> nouveau salon de thé
$ imapcli read 8465
From : Caroline Chemin <xxx@gmail.com>
Subject : atelier dégustation, école du thé
Date : Mon, 12 Feb 2018 17:47:19 +0100
ça t'intéresserais ?
http://www.lautrethe.com/accords-the-et-fromage-22-03-2018.htm

Quickstart

Install imap-cli with the following command :

pip install imap-cli

Then, configure imap-cli creating a configuration file in ~/.config/imap-cli containing :

[imap]
hostname = imap.example.org
username = username
password = secret
ssl = True

If you want to add a minimal autocompletion, you can copy imapcli_bash_completion.sh in the file /etc/bash_completion.d/imapcli or simply source.

If you want to benefit from the wrapper script described below, copy the script imapcli in your PATH

Quickstart (using Docker)

Pull imap-cli image:

docker pull gentux/imap-cli

As the first quickstart section, you'll need to configure imap-cli.

alias imap-cli="docker run -v ${HOME}/.config/imap-cli:/root/.config/imap-cli -t gentux/imap-cli imap-cli

And voilà, you can use imap-cli without installing or bothering with python.

Usage CLI

Usage: imapcli [options] <command> [<command_options>...]
Available commands are:
status List unseen, recent and total number of mail per directory in IMAP account
list List mail within a specified directory
search Search for mail
read Display Header and Body of specified mail(s)
flag Set or unset flag on specified mail(s)
Options:
-h, --help Show help options
--version Print program version
See 'imapcli help <command>' to get further information about specified command"
----
imap-cli 0.7
Copyright (C) 2014 Romain Soufflet
License MIT
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Usage Python API

This is work in progress, so API migth change. Python API aims to be as complete as possible to ease the creation of API, caching system and clients. You can find example in examples directory.

import imap_cli
from imap_cli import config
config_filename = '~/.config/imap-cli'
connect_conf = config.new_context_from_file(config_filename, section='imap')
display_conf = config.new_context_from_file(config_filename, section='display')
imap_account = imap_cli.connect(**connect_conf)
for directory_info in imap_cli.status(imap_account):
print display_conf['format_status'].format(**directory_info)

Configuration

The file config-example.ini show you available parameters and their default value when they have one.

You can also find in this file some comment describing all possibilities about each parameters.

File configuration is not the only possibility. As the package imap-cli is designed to be an API, all configuration data are shared in a context object. You can load this context progamatically if you want.

Further documentation

Full documentation available here.

Contributing

All contributions are welcome.

If your patche(s) contain new features, ensure you have written correspondig unit test. Also ensure all tests pass using tox

You can also open new issues for questions, bugs or new feature.

Roadmap

The actual version of Imap-CLI is 0.7.

Imap-CLI aims to map all IMAP protocols functionnality within a simple python API, and points in development are listed below

Creator

Romain Soufflet

Legal notices

Released under the MIT License.

About

Command line interface for imap account

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Imap-CLI

Build StatusDocumentation Status

Description

Command line interface and API for imap accounts. It provide the following actions through a minimal python library:

  • Get imap account status (New mails, mail counting… etc…)
  • Get list of mails in INBOX (or any other directory)
  • Search through mail
  • Read mail
  • Flag mail (Read, Unread, Delete, etc…)
  • Copy, Move and Delete mail

You can read about my initial motivation to write this software here.

A presentation of Imap-CLI is available here

Example

$ imapcli search INBOX -a Caroline
8465: Caroline Chemin <xxx@gmail.com> atelier dégustation, école du thé
9108: Caroline Chemin <xxx@gmail.com> nouveau salon de thé
$ imapcli read 8465
From : Caroline Chemin <xxx@gmail.com>
Subject : atelier dégustation, école du thé
Date : Mon, 12 Feb 2018 17:47:19 +0100
ça t'intéresserais ?
http://www.lautrethe.com/accords-the-et-fromage-22-03-2018.htm

Quickstart

Install imap-cli with the following command :

pip install imap-cli

Then, configure imap-cli creating a configuration file in ~/.config/imap-cli containing :

[imap]
hostname = imap.example.org
username = username
password = secret
ssl = True

If you want to add a minimal autocompletion, you can copy imapcli_bash_completion.sh in the file /etc/bash_completion.d/imapcli or simply source.

If you want to benefit from the wrapper script described below, copy the script imapcli in your PATH

Quickstart (using Docker)

Pull imap-cli image:

docker pull gentux/imap-cli

As the first quickstart section, you'll need to configure imap-cli.

alias imap-cli="docker run -v ${HOME}/.config/imap-cli:/root/.config/imap-cli -t gentux/imap-cli imap-cli

And voilà, you can use imap-cli without installing or bothering with python.

Usage CLI

Usage: imapcli [options] <command> [<command_options>...]
Available commands are:
status List unseen, recent and total number of mail per directory in IMAP account
list List mail within a specified directory
search Search for mail
read Display Header and Body of specified mail(s)
flag Set or unset flag on specified mail(s)
Options:
-h, --help Show help options
--version Print program version
See 'imapcli help <command>' to get further information about specified command"
----
imap-cli 0.7
Copyright (C) 2014 Romain Soufflet
License MIT
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Usage Python API

This is work in progress, so API migth change. Python API aims to be as complete as possible to ease the creation of API, caching system and clients. You can find example in examples directory.

import imap_cli
from imap_cli import config
config_filename = '~/.config/imap-cli'
connect_conf = config.new_context_from_file(config_filename, section='imap')
display_conf = config.new_context_from_file(config_filename, section='display')
imap_account = imap_cli.connect(**connect_conf)
for directory_info in imap_cli.status(imap_account):
print display_conf['format_status'].format(**directory_info)

Configuration

The file config-example.ini show you available parameters and their default value when they have one.

You can also find in this file some comment describing all possibilities about each parameters.

File configuration is not the only possibility. As the package imap-cli is designed to be an API, all configuration data are shared in a context object. You can load this context progamatically if you want.

Further documentation

Full documentation available here.

Contributing

All contributions are welcome.

If your patche(s) contain new features, ensure you have written correspondig unit test. Also ensure all tests pass using tox

You can also open new issues for questions, bugs or new feature.

Roadmap

The actual version of Imap-CLI is 0.7.

Imap-CLI aims to map all IMAP protocols functionnality within a simple python API, and points in development are listed below

Creator

Romain Soufflet

Legal notices

Released under the MIT License.

About

Command line interface for imap account

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Imap-CLI

Build StatusDocumentation Status

Description

Command line interface and API for imap accounts. It provide the following actions through a minimal python library:

  • Get imap account status (New mails, mail counting… etc…)
  • Get list of mails in INBOX (or any other directory)
  • Search through mail
  • Read mail
  • Flag mail (Read, Unread, Delete, etc…)
  • Copy, Move and Delete mail

You can read about my initial motivation to write this software here.

A presentation of Imap-CLI is available here

Example

$ imapcli search INBOX -a Caroline
8465: Caroline Chemin <xxx@gmail.com> atelier dégustation, école du thé
9108: Caroline Chemin <xxx@gmail.com> nouveau salon de thé
$ imapcli read 8465
From : Caroline Chemin <xxx@gmail.com>
Subject : atelier dégustation, école du thé
Date : Mon, 12 Feb 2018 17:47:19 +0100
ça t'intéresserais ?
http://www.lautrethe.com/accords-the-et-fromage-22-03-2018.htm

Quickstart

Install imap-cli with the following command :

pip install imap-cli

Then, configure imap-cli creating a configuration file in ~/.config/imap-cli containing :

[imap]
hostname = imap.example.org
username = username
password = secret
ssl = True

If you want to add a minimal autocompletion, you can copy imapcli_bash_completion.sh in the file /etc/bash_completion.d/imapcli or simply source.

If you want to benefit from the wrapper script described below, copy the script imapcli in your PATH

Quickstart (using Docker)

Pull imap-cli image:

docker pull gentux/imap-cli

As the first quickstart section, you'll need to configure imap-cli.

alias imap-cli="docker run -v ${HOME}/.config/imap-cli:/root/.config/imap-cli -t gentux/imap-cli imap-cli

And voilà, you can use imap-cli without installing or bothering with python.

Usage CLI

Usage: imapcli [options] <command> [<command_options>...]
Available commands are:
status List unseen, recent and total number of mail per directory in IMAP account
list List mail within a specified directory
search Search for mail
read Display Header and Body of specified mail(s)
flag Set or unset flag on specified mail(s)
Options:
-h, --help Show help options
--version Print program version
See 'imapcli help <command>' to get further information about specified command"
----
imap-cli 0.7
Copyright (C) 2014 Romain Soufflet
License MIT
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Usage Python API

This is work in progress, so API migth change. Python API aims to be as complete as possible to ease the creation of API, caching system and clients. You can find example in examples directory.

import imap_cli
from imap_cli import config
config_filename = '~/.config/imap-cli'
connect_conf = config.new_context_from_file(config_filename, section='imap')
display_conf = config.new_context_from_file(config_filename, section='display')
imap_account = imap_cli.connect(**connect_conf)
for directory_info in imap_cli.status(imap_account):
print display_conf['format_status'].format(**directory_info)

Configuration

The file config-example.ini show you available parameters and their default value when they have one.

You can also find in this file some comment describing all possibilities about each parameters.

File configuration is not the only possibility. As the package imap-cli is designed to be an API, all configuration data are shared in a context object. You can load this context progamatically if you want.

Further documentation

Full documentation available here.

Contributing

All contributions are welcome.

If your patche(s) contain new features, ensure you have written correspondig unit test. Also ensure all tests pass using tox

You can also open new issues for questions, bugs or new feature.

Roadmap

The actual version of Imap-CLI is 0.7.

Imap-CLI aims to map all IMAP protocols functionnality within a simple python API, and points in development are listed below

Creator

Romain Soufflet

Legal notices

Released under the MIT License.

About

Command line interface for imap account

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

Imap-CLI

Build StatusDocumentation Status

Description

Command line interface and API for imap accounts. It provide the following actions through a minimal python library:

  • Get imap account status (New mails, mail counting… etc…)
  • Get list of mails in INBOX (or any other directory)
  • Search through mail
  • Read mail
  • Flag mail (Read, Unread, Delete, etc…)
  • Copy, Move and Delete mail

You can read about my initial motivation to write this software here.

A presentation of Imap-CLI is available here

Example

$ imapcli search INBOX -a Caroline
8465: Caroline Chemin <xxx@gmail.com> atelier dégustation, école du thé
9108: Caroline Chemin <xxx@gmail.com> nouveau salon de thé
$ imapcli read 8465
From : Caroline Chemin <xxx@gmail.com>
Subject : atelier dégustation, école du thé
Date : Mon, 12 Feb 2018 17:47:19 +0100
ça t'intéresserais ?
http://www.lautrethe.com/accords-the-et-fromage-22-03-2018.htm

Quickstart

Install imap-cli with the following command :

pip install imap-cli

Then, configure imap-cli creating a configuration file in ~/.config/imap-cli containing :

[imap]
hostname = imap.example.org
username = username
password = secret
ssl = True

If you want to add a minimal autocompletion, you can copy imapcli_bash_completion.sh in the file /etc/bash_completion.d/imapcli or simply source.

If you want to benefit from the wrapper script described below, copy the script imapcli in your PATH

Quickstart (using Docker)

Pull imap-cli image:

docker pull gentux/imap-cli

As the first quickstart section, you'll need to configure imap-cli.

alias imap-cli="docker run -v ${HOME}/.config/imap-cli:/root/.config/imap-cli -t gentux/imap-cli imap-cli

And voilà, you can use imap-cli without installing or bothering with python.

Usage CLI

Usage: imapcli [options] <command> [<command_options>...]
Available commands are:
status List unseen, recent and total number of mail per directory in IMAP account
list List mail within a specified directory
search Search for mail
read Display Header and Body of specified mail(s)
flag Set or unset flag on specified mail(s)
Options:
-h, --help Show help options
--version Print program version
See 'imapcli help <command>' to get further information about specified command"
----
imap-cli 0.7
Copyright (C) 2014 Romain Soufflet
License MIT
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Usage Python API

This is work in progress, so API migth change. Python API aims to be as complete as possible to ease the creation of API, caching system and clients. You can find example in examples directory.

import imap_cli
from imap_cli import config
config_filename = '~/.config/imap-cli'
connect_conf = config.new_context_from_file(config_filename, section='imap')
display_conf = config.new_context_from_file(config_filename, section='display')
imap_account = imap_cli.connect(**connect_conf)
for directory_info in imap_cli.status(imap_account):
print display_conf['format_status'].format(**directory_info)

Configuration

The file config-example.ini show you available parameters and their default value when they have one.

You can also find in this file some comment describing all possibilities about each parameters.

File configuration is not the only possibility. As the package imap-cli is designed to be an API, all configuration data are shared in a context object. You can load this context progamatically if you want.

Further documentation

Full documentation available here.

Contributing

All contributions are welcome.

If your patche(s) contain new features, ensure you have written correspondig unit test. Also ensure all tests pass using tox

You can also open new issues for questions, bugs or new feature.

Roadmap

The actual version of Imap-CLI is 0.7.

Imap-CLI aims to map all IMAP protocols functionnality within a simple python API, and points in development are listed below

Creator

Romain Soufflet

Legal notices

Released under the MIT License.

About

Command line interface for imap account

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages