Mailctl: Difference between revisions
From wikinotes
(→Usage) |
(→Usage) |
||
(5 intermediate revisions by the same user not shown) | |||
Line 25: | Line 25: | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
aura -A mailctl-bin | aura -A mailctl-bin | ||
touch ~/.config/mailctl/config.yaml | |||
touch ~/.config/mailctl/services.yaml | |||
mkdir -p ~/.local/var/mailctl/ | |||
</syntaxhighlight> | </syntaxhighlight> | ||
</blockquote><!-- Install --> | </blockquote><!-- Install --> | ||
Line 30: | Line 33: | ||
= Usage = | = Usage = | ||
<blockquote> | <blockquote> | ||
* configure directories and gpg-access in <code>config.yaml</code> | |||
* configure services (ex. gmail) in <code>services.yaml</code> | |||
Initial Account Setup | |||
<syntaxhighlight lang="bash"> | |||
# now you can authorize an email for a particular service | |||
# mailctl authorize ${service} ${email} | |||
mailctl authorize gmail_family foo@gmail.com | |||
open 'http://localhost:8080/start' | |||
# continue manual auth flow | |||
</syntaxhighlight> | |||
Obtain cached token | |||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
mailctl | # once your service has been authorized once on this computer, | ||
# you can manage access using 'access' | |||
mailctl access foo@gmail.com | |||
</syntaxhighlight> | |||
You'll also need to periodically renew your token (put this in a cron job) | |||
<syntaxhighlight lang="bash"> | |||
mailctl rewnew foo@gmail.com | |||
</syntaxhighlight> | </syntaxhighlight> | ||
</blockquote><!-- Usage --> | </blockquote><!-- Usage --> | ||
= Configuration = | |||
<blockquote> | |||
== Mailctl == | |||
<blockquote> | |||
<syntaxhighlight lang="yaml"> | |||
# ~/.config/mailctl/config.yml | |||
# | |||
# annotated template: https://github.com/pdobsan/mailctl/blob/main/configs/config-template.yaml | |||
# These four entries should be use for OAuth2 access method | |||
services_file: /home/youruser/.config/mailctl/services.yaml | |||
oauth2_dir: /home/youruser/.local/var/mailctl | |||
# encrypt/decrypt with gpg (other options available) | |||
encrypt_cmd: | |||
exec: gpg | |||
args: | |||
- --encrypt | |||
- --recipient | |||
- ${your_gpg_key_id} | |||
- -o | |||
decrypt_cmd: | |||
exec: gpg | |||
args: | |||
- --decrypt | |||
</syntaxhighlight> | |||
</blockquote><!-- Mailctl --> | |||
== Services == | |||
<blockquote> | |||
=== Gmail === | |||
<blockquote> | |||
Each email should have it's own configuration (since each will have it's own id/secret). | |||
create OAUTH tokens using instructions in [[gmail]]. | |||
<syntaxhighlight lang="yaml"> | |||
# ~/.config/mailctl/config.yml | |||
# | |||
# annotated template: https://github.com/pdobsan/mailctl/blob/main/configs/services-template.yaml | |||
gmail_junk: | |||
auth_endpoint: https://accounts.google.com/o/oauth2/auth | |||
auth_http_method: POST | |||
auth_params_mode: query-string | |||
token_endpoint: https://accounts.google.com/o/oauth2/token | |||
token_http_method: POST | |||
token_params_mode: both | |||
redirect_uri: http://localhost:8080 | |||
auth_scope: https://mail.google.com/ | |||
client_id: XXXXXXXXXXXXXXXXXX | |||
client_secret: XXXXXXXXXXXXXXXXXX | |||
</syntaxhighlight> | |||
</blockquote><!-- Gmail --> | |||
</blockquote><!-- Services --> | |||
</blockquote><!-- Configuration --> |
Latest revision as of 14:59, 22 October 2022
mailctl provides IMAP/SMTP clients with the capabilities of renewal and authorization of OAuth2 credentials.
Documentation
github https://github.com/pdobsan/mailctl config docs https://github.com/pdobsan/mailctl#configuration
Locations
$XDG_CONFIG_HOME/mailctl/config.yml
config
Install
aura -A mailctl-bin touch ~/.config/mailctl/config.yaml touch ~/.config/mailctl/services.yaml mkdir -p ~/.local/var/mailctl/
Usage
- configure directories and gpg-access in
config.yaml
- configure services (ex. gmail) in
services.yaml
Initial Account Setup
# now you can authorize an email for a particular service # mailctl authorize ${service} ${email} mailctl authorize gmail_family foo@gmail.com open 'http://localhost:8080/start' # continue manual auth flowObtain cached token
# once your service has been authorized once on this computer, # you can manage access using 'access' mailctl access foo@gmail.comYou'll also need to periodically renew your token (put this in a cron job)
mailctl rewnew foo@gmail.com
Configuration
Mailctl
# ~/.config/mailctl/config.yml # # annotated template: https://github.com/pdobsan/mailctl/blob/main/configs/config-template.yaml # These four entries should be use for OAuth2 access method services_file: /home/youruser/.config/mailctl/services.yaml oauth2_dir: /home/youruser/.local/var/mailctl # encrypt/decrypt with gpg (other options available) encrypt_cmd: exec: gpg args: - --encrypt - --recipient - ${your_gpg_key_id} - -o decrypt_cmd: exec: gpg args: - --decryptServices
Gmail
Each email should have it's own configuration (since each will have it's own id/secret).
create OAUTH tokens using instructions in gmail.
# ~/.config/mailctl/config.yml # # annotated template: https://github.com/pdobsan/mailctl/blob/main/configs/services-template.yaml gmail_junk: auth_endpoint: https://accounts.google.com/o/oauth2/auth auth_http_method: POST auth_params_mode: query-string token_endpoint: https://accounts.google.com/o/oauth2/token token_http_method: POST token_params_mode: both redirect_uri: http://localhost:8080 auth_scope: https://mail.google.com/ client_id: XXXXXXXXXXXXXXXXXX client_secret: XXXXXXXXXXXXXXXXXX