Toolbox for implementing GTD-like behaviours in your IMAP inbox
GPL-3.0 License
Toolbox for implementing GTD-like behaviours in your IMAP inbox.
Print the current "TODO" list::
$ tickle-me-email todo
Send a "TODO" email to yourself, injecting it via IMAP::
$ tickle-me-email todo Empty recycle bin
or::
$ echo Empty recycle bin | tickle-me-email todo -
"Tickler" file email rotation from DELAYED.07
to DELAYED.06
etc.
Mail from DELAYED.01
is moved to your main inbox. Use this to "put off"
emails until a day they are important. To be run daily from cron(8)
::
$ tickle-me-email rotate Inbox.Mail.DELAYED.%02d 1 7 INBOX
Single-folder version of the above to move email for "after" work into your
main inbox. Use this when you receive a non-work email during the day. To be
run at, say, 6:15pm from cron(8)
::
$ tickle-me-email move Inbox.Mail.DELAYED.18h15 INBOX
Create count
folders based on the specified Python string
template
starting at start
. For example::
$ tickle-me-email create-folders "Inbox.Mail.DELAYED.%02d" 1 14
... will create:
Send draft emails queued in the LATER.Evening
, moving them to a Sent Items
if successful. Use this to avoid getting replies "too" quickly. To be
run at, say, 6:15pm from cron(8)
::
$ tickle-me-email send-later INBOX.Mail.LATER.Evening
List all email mailboxes. Use this to find out the "internal" names of your IMAP folders::
$ tickle-me-email list
Insert an email into your drafts folder::
$ DRAFT_ATTACHMENT="/path/to/attachment.txt" tickle-me-email drafts - < /path/to/body.txt
Print the all the current subject lines (eg. for scripting)::
$ tickle-me-email subjects
Print the current configuration::
$ tickle-me-email config
You configure tickle-me-email
via the optional configuration files:
~/.config/tickle-me-email/tickle-me-email.cfg
/etc/tickle-me-email/tickle-me-email.cfg
For example::
[imap]
server=imap.example.org
username=lamby
password=secret
secure=true
[smtp]
server=smtp.example.org
username=lamby
password=secret
secure=true
[todo]
mailbox=INBOX
recipient=TODO <[email protected]>
[draft]
mailbox=INBOX.Drafts
subject=Default draft subject
Alternatively, you can define the following environment variables:
IMAP_SERVER
(eg. imap.example.org
)
IMAP_SECURE
(eg. true
/false
)
IMAP_USERNAME
(eg. lamby
)
IMAP_PASSWORD
(eg. secret
)
SMTP_SERVER
(eg. smtp.example.org
)
SMTP_SECURE
(eg. true
/false
)
SMTP_USERNAME
(eg. lamby
)
SMTP_PASSWORD
(eg. secret
)
TODO_EMAIL
(eg. TODO <[email protected]>
)
TODO_PREFIX
(eg. TODO:
)
TODO_MAILBOX
(eg. INBOX
)
DRAFT_TO
(eg. [email protected]
)
DRAFT_CC
(eg. [email protected]
)
DRAFT_BCC
(eg. [email protected]
)
DRAFT_SUBJECT
(eg. Draft subject
)
DRAFT_MAILBOX
(eg. INBOX.Drafts
)
DRAFT_ATTACHMENT
(eg. /path/to/filename.txt
)
DRAFT_EXTRA_HEADERS
(eg. X-Me-Personality: 20851409
)
SUBJECTS_MAILBOX
(eg. INBOX
)