mail: add communigate
Some checks failed
Update Site / trigger_update (push) Has been cancelled

This commit is contained in:
Pavel Korytov 2025-03-14 11:18:32 +03:00
parent b7728cf9ca
commit 58696bf2e5
4 changed files with 118 additions and 40 deletions

View file

@ -26,6 +26,9 @@
(my/use-colors (my/use-colors
(notmuch-wash-cited-text :foreground (doom-color 'yellow))) (notmuch-wash-cited-text :foreground (doom-color 'yellow)))
:config :config
(setq notmuch-fcc-dirs
'(("pvkorytov@etu.ru" . "pvkorytov_etu_mbox/Sent")
(".*" . "sent")))
(setq mail-specify-envelope-from t) (setq mail-specify-envelope-from t)
(setq message-sendmail-envelope-from 'header) (setq message-sendmail-envelope-from 'header)
(setq mail-envelope-from 'header) (setq mail-envelope-from 'header)

View file

@ -92,12 +92,16 @@ pass show Job/Digital/Email/pvkorytov@etu.ru | head -n 1
#+begin_src conf-unix :tangle ~/.offlineimaprc :noweb yes #+begin_src conf-unix :tangle ~/.offlineimaprc :noweb yes
[general] [general]
accounts = pvkorytov accounts = pvkorytov,pvkorytov-mbox
[Account pvkorytov] [Account pvkorytov]
localrepository = pvkorytov-local localrepository = pvkorytov-local
remoterepository = pvkorytov-remote remoterepository = pvkorytov-remote
[Account pvkorytov-mbox]
localrepository = pvkorytov-mbox-local
remoterepository = pvkorytov-mbox-remote
[Repository pvkorytov-local] [Repository pvkorytov-local]
type = Maildir type = Maildir
localfolders = ~/Mail/pvkorytov_etu/ localfolders = ~/Mail/pvkorytov_etu/
@ -111,6 +115,18 @@ remoteport = 1143
starttls = no starttls = no
ssl = no ssl = no
sslcacertfile = /etc/ssl/certs/ca-certificates.crt sslcacertfile = /etc/ssl/certs/ca-certificates.crt
[Repository pvkorytov-mbox-local]
type = Maildir
localfolders = ~/Mail/pvkorytov_etu_mbox/
[Repository pvkorytov-mbox-remote]
type = IMAP
remotehost = mbox.etu.ru
remoteuser = <<mail-username()>>
remotepass = <<mail-password()>>
remoteport = 993
cert_fingerprint = 07bdfab4eaa79f5fc8ab93cd9ad0ba025ea0b4e5
#+end_src #+end_src
* Notmuch * Notmuch
| Guix dependency | | Guix dependency |
@ -194,6 +210,8 @@ So, here are the rules which match tags & folders:
| etu | Etu | | etu | Etu |
| etu.grad-school | Etu.Grad_School | | etu.grad-school | Etu.Grad_School |
&BCMENAQwBDsENQQ9BD0ESwQ1-
And below is a noweb function, which generates the following commands for notmuch to execute: And below is a noweb function, which generates the following commands for notmuch to execute:
- /before/ sync: - /before/ sync:
- =notmuch search --output files "NOT path:[PATH] AND tag:[TAG] AND tag:[ROOT_TAG]" | xargs -I ! mv ! [PATH]= - =notmuch search --output files "NOT path:[PATH] AND tag:[TAG] AND tag:[ROOT_TAG]" | xargs -I ! mv ! [PATH]=
@ -225,23 +243,24 @@ These rules are getting included in the respective hooks.
(unless (string-empty-p remove) (unless (string-empty-p remove)
(add-to-list (add-to-list
'rules 'rules
(format "notmuch tag -%s \"NOT path:%s/%s/cur/** AND tag:%s AND tag:%s\"" (format
tag root folder tag root_tag) "notmuch tag -%s \"NOT path:%s/%s/cur/** AND path:%s/** AND tag:%s AND tag:%s\""
tag root folder root tag root_tag)
t)) t))
(unless (string-empty-p move) (unless (string-empty-p move)
(add-to-list (add-to-list
'rules 'rules
(concat (concat
(format "notmuch search --output=files \"NOT path:%s/%s/cur/** AND tag:%s AND tag:%s\"" (format "notmuch search --output=files \"NOT path:%s/%s/cur/** AND path:%s/** AND tag:%s AND tag:%s\""
root folder tag root_tag) root folder root tag root_tag)
(format " | xargs -I ! mv ! %s/%s/%s/cur/" my/maildir-root root folder)) (format " | xargs -I ! mv ! %s/%s/%s/cur/" my/maildir-root root folder))
t)))) t))))
(unless (string-empty-p archive_root) (unless (string-empty-p archive_root)
(add-to-list (add-to-list
'rules 'rules
(concat (concat
(format "notmuch search --output=files \"NOT path:%s/%s/cur/** AND %s AND tag:%s\"" (format "notmuch search --output=files \"NOT path:%s/%s/cur/** AND path:%s/** AND %s AND tag:%s\""
root archive_root root archive_root root
(mapconcat (mapconcat
(lambda (row) (lambda (row)
(format "NOT tag:%s" (car row))) (format "NOT tag:%s" (car row)))
@ -264,11 +283,13 @@ It isn't necessary to run =cd= for offlineimap, but it's easier to write that wa
#+end_src #+end_src
#+begin_src bash :tangle ~/Mail/.notmuch/hooks/pre-new :noweb yes #+begin_src bash :tangle ~/Mail/.notmuch/hooks/pre-new :noweb yes
# GMI="/home/pavel/Programs/miniconda3/envs/mail/bin/gmi" GMI="/home/pavel/Programs/miniconda3/envs/mail/bin/gmi"
GMI="gmi" GMI="gmi"
echo "Running pre-new filters" echo "Running pre-new filters"
<<mail-tags(move="t",archive_root="Archive")>> <<mail-tags(move="t",archive_root="Archive")>>
<<mail-tags(move="t",archive_root="Archive",root="pvkorytov_etu_mbox")>>
echo "Pre-new filters done" echo "Pre-new filters done"
parallel --link -j0 "(cd /home/pavel/Mail/{1}/ && {2} {3})" ::: thexcloud progin6304 pvkorytov_etu ::: "$GMI" "$GMI" "offlineimap" ::: sync sync "" parallel --link -j0 "(cd /home/pavel/Mail/{1}/ && {2} {3})" ::: thexcloud progin6304 pvkorytov_etu ::: "$GMI" "$GMI" "offlineimap" ::: sync sync ""
@ -286,9 +307,14 @@ And this hook tags different mailboxes with different tags.
notmuch tag +main "path:thexcloud/** AND tag:new" notmuch tag +main "path:thexcloud/** AND tag:new"
notmuch tag +progin "path:progin6304/** AND tag:new" notmuch tag +progin "path:progin6304/** AND tag:new"
notmuch tag +pvkorytov "path:pvkorytov_etu/** AND tag:new" notmuch tag +pvkorytov "path:pvkorytov_etu/** AND tag:new"
notmuch tag +pvkorytov "path:pvkorytov_etu_mbox/** AND tag:new"
notmuch tag +mbox "path:pvkorytov_etu_mbox/** AND tag:new"
echo "Running post-new filters" echo "Running post-new filters"
<<mail-tags(make_tag="t",remove="t")>> <<mail-tags(make_tag="t",remove="t")>>
<<mail-tags(make_tag="t",remove="t",root="pvkorytov_etu_mbox")>>
echo "Post-new filters done" echo "Post-new filters done"
notmuch tag -new "tag:new" notmuch tag -new "tag:new"
#+end_src #+end_src
@ -359,10 +385,11 @@ user progin6304@gmail.com
passwordeval "pass show My_Online/ETU/progin6304@gmail.com | head -n 1" passwordeval "pass show My_Online/ETU/progin6304@gmail.com | head -n 1"
account pvkorytov account pvkorytov
tls off host mbox.etu.ru
auth plain port 465
host localhost tls on
port 1025 tls_starttls off
tls_fingerprint 87:1F:17:1C:12:A4:DE:82:6F:CF:E5:E6:9C:EE:F8:0B:D1:7D:B2:00:F9:7B:2C:96:21:65:FA:0A:F5:24:8E:0E
from pvkorytov@etu.ru from pvkorytov@etu.ru
user pvkorytov user pvkorytov
passwordeval "pass show Job/Digital/Email/pvkorytov@etu.ru | head -n 1" passwordeval "pass show Job/Digital/Email/pvkorytov@etu.ru | head -n 1"
@ -417,6 +444,9 @@ And notmuch settings:
(my/use-colors (my/use-colors
(notmuch-wash-cited-text :foreground (doom-color 'yellow))) (notmuch-wash-cited-text :foreground (doom-color 'yellow)))
:config :config
(setq notmuch-fcc-dirs
'(("pvkorytov@etu.ru" . "pvkorytov_etu_mbox/Sent")
(".*" . "sent")))
(setq mail-specify-envelope-from t) (setq mail-specify-envelope-from t)
(setq message-sendmail-envelope-from 'header) (setq message-sendmail-envelope-from 'header)
(setq mail-envelope-from 'header) (setq mail-envelope-from 'header)

View file

@ -3,34 +3,64 @@
notmuch tag +main "path:thexcloud/** AND tag:new" notmuch tag +main "path:thexcloud/** AND tag:new"
notmuch tag +progin "path:progin6304/** AND tag:new" notmuch tag +progin "path:progin6304/** AND tag:new"
notmuch tag +pvkorytov "path:pvkorytov_etu/** AND tag:new" notmuch tag +pvkorytov "path:pvkorytov_etu/** AND tag:new"
notmuch tag +pvkorytov "path:pvkorytov_etu_mbox/** AND tag:new"
notmuch tag +mbox "path:pvkorytov_etu_mbox/** AND tag:new"
echo "Running post-new filters" echo "Running post-new filters"
notmuch tag +inbox "path:pvkorytov_etu/INBOX/cur/** AND NOT tag:inbox" notmuch tag +inbox "path:pvkorytov_etu/INBOX/cur/** AND NOT tag:inbox"
notmuch tag -inbox "NOT path:pvkorytov_etu/INBOX/cur/** AND tag:inbox AND tag:pvkorytov" notmuch tag -inbox "NOT path:pvkorytov_etu/INBOX/cur/** AND path:pvkorytov_etu/** AND tag:inbox AND tag:pvkorytov"
notmuch tag +sent "path:pvkorytov_etu/Sent/cur/** AND NOT tag:sent" notmuch tag +sent "path:pvkorytov_etu/Sent/cur/** AND NOT tag:sent"
notmuch tag -sent "NOT path:pvkorytov_etu/Sent/cur/** AND tag:sent AND tag:pvkorytov" notmuch tag -sent "NOT path:pvkorytov_etu/Sent/cur/** AND path:pvkorytov_etu/** AND tag:sent AND tag:pvkorytov"
notmuch tag +spam "path:pvkorytov_etu/Junk/cur/** AND NOT tag:spam" notmuch tag +spam "path:pvkorytov_etu/Junk/cur/** AND NOT tag:spam"
notmuch tag -spam "NOT path:pvkorytov_etu/Junk/cur/** AND tag:spam AND tag:pvkorytov" notmuch tag -spam "NOT path:pvkorytov_etu/Junk/cur/** AND path:pvkorytov_etu/** AND tag:spam AND tag:pvkorytov"
notmuch tag +trash "path:pvkorytov_etu/Trash/cur/** AND NOT tag:trash" notmuch tag +trash "path:pvkorytov_etu/Trash/cur/** AND NOT tag:trash"
notmuch tag -trash "NOT path:pvkorytov_etu/Trash/cur/** AND tag:trash AND tag:pvkorytov" notmuch tag -trash "NOT path:pvkorytov_etu/Trash/cur/** AND path:pvkorytov_etu/** AND tag:trash AND tag:pvkorytov"
notmuch tag +job.digital "path:pvkorytov_etu/Job_Digital/cur/** AND NOT tag:job.digital" notmuch tag +job.digital "path:pvkorytov_etu/Job_Digital/cur/** AND NOT tag:job.digital"
notmuch tag -job.digital "NOT path:pvkorytov_etu/Job_Digital/cur/** AND tag:job.digital AND tag:pvkorytov" notmuch tag -job.digital "NOT path:pvkorytov_etu/Job_Digital/cur/** AND path:pvkorytov_etu/** AND tag:job.digital AND tag:pvkorytov"
notmuch tag +job.digital.docs "path:pvkorytov_etu/Job_Digital.Docs/cur/** AND NOT tag:job.digital.docs" notmuch tag +job.digital.docs "path:pvkorytov_etu/Job_Digital.Docs/cur/** AND NOT tag:job.digital.docs"
notmuch tag -job.digital.docs "NOT path:pvkorytov_etu/Job_Digital.Docs/cur/** AND tag:job.digital.docs AND tag:pvkorytov" notmuch tag -job.digital.docs "NOT path:pvkorytov_etu/Job_Digital.Docs/cur/** AND path:pvkorytov_etu/** AND tag:job.digital.docs AND tag:pvkorytov"
notmuch tag +job.digital.support "path:pvkorytov_etu/Job_Digital.Support/cur/** AND NOT tag:job.digital.support" notmuch tag +job.digital.support "path:pvkorytov_etu/Job_Digital.Support/cur/** AND NOT tag:job.digital.support"
notmuch tag -job.digital.support "NOT path:pvkorytov_etu/Job_Digital.Support/cur/** AND tag:job.digital.support AND tag:pvkorytov" notmuch tag -job.digital.support "NOT path:pvkorytov_etu/Job_Digital.Support/cur/** AND path:pvkorytov_etu/** AND tag:job.digital.support AND tag:pvkorytov"
notmuch tag +job.digital.superservice "path:pvkorytov_etu/Job_Digital.Superservice/cur/** AND NOT tag:job.digital.superservice" notmuch tag +job.digital.superservice "path:pvkorytov_etu/Job_Digital.Superservice/cur/** AND NOT tag:job.digital.superservice"
notmuch tag -job.digital.superservice "NOT path:pvkorytov_etu/Job_Digital.Superservice/cur/** AND tag:job.digital.superservice AND tag:pvkorytov" notmuch tag -job.digital.superservice "NOT path:pvkorytov_etu/Job_Digital.Superservice/cur/** AND path:pvkorytov_etu/** AND tag:job.digital.superservice AND tag:pvkorytov"
notmuch tag +job.digital.applicants "path:pvkorytov_etu/Job_Digital.Applicants/cur/** AND NOT tag:job.digital.applicants" notmuch tag +job.digital.applicants "path:pvkorytov_etu/Job_Digital.Applicants/cur/** AND NOT tag:job.digital.applicants"
notmuch tag -job.digital.applicants "NOT path:pvkorytov_etu/Job_Digital.Applicants/cur/** AND tag:job.digital.applicants AND tag:pvkorytov" notmuch tag -job.digital.applicants "NOT path:pvkorytov_etu/Job_Digital.Applicants/cur/** AND path:pvkorytov_etu/** AND tag:job.digital.applicants AND tag:pvkorytov"
notmuch tag +job.digital.testers "path:pvkorytov_etu/Job_Digital.Testers/cur/** AND NOT tag:job.digital.testers" notmuch tag +job.digital.testers "path:pvkorytov_etu/Job_Digital.Testers/cur/** AND NOT tag:job.digital.testers"
notmuch tag -job.digital.testers "NOT path:pvkorytov_etu/Job_Digital.Testers/cur/** AND tag:job.digital.testers AND tag:pvkorytov" notmuch tag -job.digital.testers "NOT path:pvkorytov_etu/Job_Digital.Testers/cur/** AND path:pvkorytov_etu/** AND tag:job.digital.testers AND tag:pvkorytov"
notmuch tag +job.moevm "path:pvkorytov_etu/Job_Moevm/cur/** AND NOT tag:job.moevm" notmuch tag +job.moevm "path:pvkorytov_etu/Job_Moevm/cur/** AND NOT tag:job.moevm"
notmuch tag -job.moevm "NOT path:pvkorytov_etu/Job_Moevm/cur/** AND tag:job.moevm AND tag:pvkorytov" notmuch tag -job.moevm "NOT path:pvkorytov_etu/Job_Moevm/cur/** AND path:pvkorytov_etu/** AND tag:job.moevm AND tag:pvkorytov"
notmuch tag +etu "path:pvkorytov_etu/Etu/cur/** AND NOT tag:etu" notmuch tag +etu "path:pvkorytov_etu/Etu/cur/** AND NOT tag:etu"
notmuch tag -etu "NOT path:pvkorytov_etu/Etu/cur/** AND tag:etu AND tag:pvkorytov" notmuch tag -etu "NOT path:pvkorytov_etu/Etu/cur/** AND path:pvkorytov_etu/** AND tag:etu AND tag:pvkorytov"
notmuch tag +etu.grad-school "path:pvkorytov_etu/Etu.Grad_School/cur/** AND NOT tag:etu.grad-school" notmuch tag +etu.grad-school "path:pvkorytov_etu/Etu.Grad_School/cur/** AND NOT tag:etu.grad-school"
notmuch tag -etu.grad-school "NOT path:pvkorytov_etu/Etu.Grad_School/cur/** AND tag:etu.grad-school AND tag:pvkorytov" notmuch tag -etu.grad-school "NOT path:pvkorytov_etu/Etu.Grad_School/cur/** AND path:pvkorytov_etu/** AND tag:etu.grad-school AND tag:pvkorytov"
notmuch tag +inbox "path:pvkorytov_etu_mbox/INBOX/cur/** AND NOT tag:inbox"
notmuch tag -inbox "NOT path:pvkorytov_etu_mbox/INBOX/cur/** AND path:pvkorytov_etu_mbox/** AND tag:inbox AND tag:pvkorytov"
notmuch tag +sent "path:pvkorytov_etu_mbox/Sent/cur/** AND NOT tag:sent"
notmuch tag -sent "NOT path:pvkorytov_etu_mbox/Sent/cur/** AND path:pvkorytov_etu_mbox/** AND tag:sent AND tag:pvkorytov"
notmuch tag +spam "path:pvkorytov_etu_mbox/Junk/cur/** AND NOT tag:spam"
notmuch tag -spam "NOT path:pvkorytov_etu_mbox/Junk/cur/** AND path:pvkorytov_etu_mbox/** AND tag:spam AND tag:pvkorytov"
notmuch tag +trash "path:pvkorytov_etu_mbox/Trash/cur/** AND NOT tag:trash"
notmuch tag -trash "NOT path:pvkorytov_etu_mbox/Trash/cur/** AND path:pvkorytov_etu_mbox/** AND tag:trash AND tag:pvkorytov"
notmuch tag +job.digital "path:pvkorytov_etu_mbox/Job_Digital/cur/** AND NOT tag:job.digital"
notmuch tag -job.digital "NOT path:pvkorytov_etu_mbox/Job_Digital/cur/** AND path:pvkorytov_etu_mbox/** AND tag:job.digital AND tag:pvkorytov"
notmuch tag +job.digital.docs "path:pvkorytov_etu_mbox/Job_Digital.Docs/cur/** AND NOT tag:job.digital.docs"
notmuch tag -job.digital.docs "NOT path:pvkorytov_etu_mbox/Job_Digital.Docs/cur/** AND path:pvkorytov_etu_mbox/** AND tag:job.digital.docs AND tag:pvkorytov"
notmuch tag +job.digital.support "path:pvkorytov_etu_mbox/Job_Digital.Support/cur/** AND NOT tag:job.digital.support"
notmuch tag -job.digital.support "NOT path:pvkorytov_etu_mbox/Job_Digital.Support/cur/** AND path:pvkorytov_etu_mbox/** AND tag:job.digital.support AND tag:pvkorytov"
notmuch tag +job.digital.superservice "path:pvkorytov_etu_mbox/Job_Digital.Superservice/cur/** AND NOT tag:job.digital.superservice"
notmuch tag -job.digital.superservice "NOT path:pvkorytov_etu_mbox/Job_Digital.Superservice/cur/** AND path:pvkorytov_etu_mbox/** AND tag:job.digital.superservice AND tag:pvkorytov"
notmuch tag +job.digital.applicants "path:pvkorytov_etu_mbox/Job_Digital.Applicants/cur/** AND NOT tag:job.digital.applicants"
notmuch tag -job.digital.applicants "NOT path:pvkorytov_etu_mbox/Job_Digital.Applicants/cur/** AND path:pvkorytov_etu_mbox/** AND tag:job.digital.applicants AND tag:pvkorytov"
notmuch tag +job.digital.testers "path:pvkorytov_etu_mbox/Job_Digital.Testers/cur/** AND NOT tag:job.digital.testers"
notmuch tag -job.digital.testers "NOT path:pvkorytov_etu_mbox/Job_Digital.Testers/cur/** AND path:pvkorytov_etu_mbox/** AND tag:job.digital.testers AND tag:pvkorytov"
notmuch tag +job.moevm "path:pvkorytov_etu_mbox/Job_Moevm/cur/** AND NOT tag:job.moevm"
notmuch tag -job.moevm "NOT path:pvkorytov_etu_mbox/Job_Moevm/cur/** AND path:pvkorytov_etu_mbox/** AND tag:job.moevm AND tag:pvkorytov"
notmuch tag +etu "path:pvkorytov_etu_mbox/Etu/cur/** AND NOT tag:etu"
notmuch tag -etu "NOT path:pvkorytov_etu_mbox/Etu/cur/** AND path:pvkorytov_etu_mbox/** AND tag:etu AND tag:pvkorytov"
notmuch tag +etu.grad-school "path:pvkorytov_etu_mbox/Etu.Grad_School/cur/** AND NOT tag:etu.grad-school"
notmuch tag -etu.grad-school "NOT path:pvkorytov_etu_mbox/Etu.Grad_School/cur/** AND path:pvkorytov_etu_mbox/** AND tag:etu.grad-school AND tag:pvkorytov"
echo "Post-new filters done" echo "Post-new filters done"
notmuch tag -new "tag:new" notmuch tag -new "tag:new"
# =post_new=:2 ends here # =post_new=:2 ends here

View file

@ -1,23 +1,38 @@
#!/usr/bin/env bash #!/usr/bin/env bash
# [[file:../../../Mail.org::*=pre_new=][=pre_new=:2]] # [[file:../../../Mail.org::*=pre_new=][=pre_new=:2]]
# GMI="/home/pavel/Programs/miniconda3/envs/mail/bin/gmi" GMI="/home/pavel/Programs/miniconda3/envs/mail/bin/gmi"
GMI="gmi" GMI="gmi"
echo "Running pre-new filters" echo "Running pre-new filters"
notmuch search --output=files "NOT path:pvkorytov_etu/INBOX/cur/** AND tag:inbox AND tag:pvkorytov" | xargs -I ! mv ! ~/Mail/pvkorytov_etu/INBOX/cur/ notmuch search --output=files "NOT path:pvkorytov_etu/INBOX/cur/** AND path:pvkorytov_etu/** AND tag:inbox AND tag:pvkorytov" | xargs -I ! mv ! ~/Mail/pvkorytov_etu/INBOX/cur/
notmuch search --output=files "NOT path:pvkorytov_etu/Sent/cur/** AND tag:sent AND tag:pvkorytov" | xargs -I ! mv ! ~/Mail/pvkorytov_etu/Sent/cur/ notmuch search --output=files "NOT path:pvkorytov_etu/Sent/cur/** AND path:pvkorytov_etu/** AND tag:sent AND tag:pvkorytov" | xargs -I ! mv ! ~/Mail/pvkorytov_etu/Sent/cur/
notmuch search --output=files "NOT path:pvkorytov_etu/Junk/cur/** AND tag:spam AND tag:pvkorytov" | xargs -I ! mv ! ~/Mail/pvkorytov_etu/Junk/cur/ notmuch search --output=files "NOT path:pvkorytov_etu/Junk/cur/** AND path:pvkorytov_etu/** AND tag:spam AND tag:pvkorytov" | xargs -I ! mv ! ~/Mail/pvkorytov_etu/Junk/cur/
notmuch search --output=files "NOT path:pvkorytov_etu/Trash/cur/** AND tag:trash AND tag:pvkorytov" | xargs -I ! mv ! ~/Mail/pvkorytov_etu/Trash/cur/ notmuch search --output=files "NOT path:pvkorytov_etu/Trash/cur/** AND path:pvkorytov_etu/** AND tag:trash AND tag:pvkorytov" | xargs -I ! mv ! ~/Mail/pvkorytov_etu/Trash/cur/
notmuch search --output=files "NOT path:pvkorytov_etu/Job_Digital/cur/** AND tag:job.digital AND tag:pvkorytov" | xargs -I ! mv ! ~/Mail/pvkorytov_etu/Job_Digital/cur/ notmuch search --output=files "NOT path:pvkorytov_etu/Job_Digital/cur/** AND path:pvkorytov_etu/** AND tag:job.digital AND tag:pvkorytov" | xargs -I ! mv ! ~/Mail/pvkorytov_etu/Job_Digital/cur/
notmuch search --output=files "NOT path:pvkorytov_etu/Job_Digital.Docs/cur/** AND tag:job.digital.docs AND tag:pvkorytov" | xargs -I ! mv ! ~/Mail/pvkorytov_etu/Job_Digital.Docs/cur/ notmuch search --output=files "NOT path:pvkorytov_etu/Job_Digital.Docs/cur/** AND path:pvkorytov_etu/** AND tag:job.digital.docs AND tag:pvkorytov" | xargs -I ! mv ! ~/Mail/pvkorytov_etu/Job_Digital.Docs/cur/
notmuch search --output=files "NOT path:pvkorytov_etu/Job_Digital.Support/cur/** AND tag:job.digital.support AND tag:pvkorytov" | xargs -I ! mv ! ~/Mail/pvkorytov_etu/Job_Digital.Support/cur/ notmuch search --output=files "NOT path:pvkorytov_etu/Job_Digital.Support/cur/** AND path:pvkorytov_etu/** AND tag:job.digital.support AND tag:pvkorytov" | xargs -I ! mv ! ~/Mail/pvkorytov_etu/Job_Digital.Support/cur/
notmuch search --output=files "NOT path:pvkorytov_etu/Job_Digital.Superservice/cur/** AND tag:job.digital.superservice AND tag:pvkorytov" | xargs -I ! mv ! ~/Mail/pvkorytov_etu/Job_Digital.Superservice/cur/ notmuch search --output=files "NOT path:pvkorytov_etu/Job_Digital.Superservice/cur/** AND path:pvkorytov_etu/** AND tag:job.digital.superservice AND tag:pvkorytov" | xargs -I ! mv ! ~/Mail/pvkorytov_etu/Job_Digital.Superservice/cur/
notmuch search --output=files "NOT path:pvkorytov_etu/Job_Digital.Applicants/cur/** AND tag:job.digital.applicants AND tag:pvkorytov" | xargs -I ! mv ! ~/Mail/pvkorytov_etu/Job_Digital.Applicants/cur/ notmuch search --output=files "NOT path:pvkorytov_etu/Job_Digital.Applicants/cur/** AND path:pvkorytov_etu/** AND tag:job.digital.applicants AND tag:pvkorytov" | xargs -I ! mv ! ~/Mail/pvkorytov_etu/Job_Digital.Applicants/cur/
notmuch search --output=files "NOT path:pvkorytov_etu/Job_Digital.Testers/cur/** AND tag:job.digital.testers AND tag:pvkorytov" | xargs -I ! mv ! ~/Mail/pvkorytov_etu/Job_Digital.Testers/cur/ notmuch search --output=files "NOT path:pvkorytov_etu/Job_Digital.Testers/cur/** AND path:pvkorytov_etu/** AND tag:job.digital.testers AND tag:pvkorytov" | xargs -I ! mv ! ~/Mail/pvkorytov_etu/Job_Digital.Testers/cur/
notmuch search --output=files "NOT path:pvkorytov_etu/Job_Moevm/cur/** AND tag:job.moevm AND tag:pvkorytov" | xargs -I ! mv ! ~/Mail/pvkorytov_etu/Job_Moevm/cur/ notmuch search --output=files "NOT path:pvkorytov_etu/Job_Moevm/cur/** AND path:pvkorytov_etu/** AND tag:job.moevm AND tag:pvkorytov" | xargs -I ! mv ! ~/Mail/pvkorytov_etu/Job_Moevm/cur/
notmuch search --output=files "NOT path:pvkorytov_etu/Etu/cur/** AND tag:etu AND tag:pvkorytov" | xargs -I ! mv ! ~/Mail/pvkorytov_etu/Etu/cur/ notmuch search --output=files "NOT path:pvkorytov_etu/Etu/cur/** AND path:pvkorytov_etu/** AND tag:etu AND tag:pvkorytov" | xargs -I ! mv ! ~/Mail/pvkorytov_etu/Etu/cur/
notmuch search --output=files "NOT path:pvkorytov_etu/Etu.Grad_School/cur/** AND tag:etu.grad-school AND tag:pvkorytov" | xargs -I ! mv ! ~/Mail/pvkorytov_etu/Etu.Grad_School/cur/ notmuch search --output=files "NOT path:pvkorytov_etu/Etu.Grad_School/cur/** AND path:pvkorytov_etu/** AND tag:etu.grad-school AND tag:pvkorytov" | xargs -I ! mv ! ~/Mail/pvkorytov_etu/Etu.Grad_School/cur/
notmuch search --output=files "NOT path:pvkorytov_etu/Archive/cur/** AND NOT tag:inbox AND NOT tag:sent AND NOT tag:spam AND NOT tag:trash AND NOT tag:job.digital AND NOT tag:job.digital.docs AND NOT tag:job.digital.support AND NOT tag:job.digital.superservice AND NOT tag:job.digital.applicants AND NOT tag:job.digital.testers AND NOT tag:job.moevm AND NOT tag:etu AND NOT tag:etu.grad-school AND tag:pvkorytov" | xargs -I ! mv ! ~/Mail/pvkorytov_etu/Archive/cur/ notmuch search --output=files "NOT path:pvkorytov_etu/Archive/cur/** AND path:pvkorytov_etu/** AND NOT tag:inbox AND NOT tag:sent AND NOT tag:spam AND NOT tag:trash AND NOT tag:job.digital AND NOT tag:job.digital.docs AND NOT tag:job.digital.support AND NOT tag:job.digital.superservice AND NOT tag:job.digital.applicants AND NOT tag:job.digital.testers AND NOT tag:job.moevm AND NOT tag:etu AND NOT tag:etu.grad-school AND tag:pvkorytov" | xargs -I ! mv ! ~/Mail/pvkorytov_etu/Archive/cur/
notmuch search --output=files "NOT path:pvkorytov_etu_mbox/INBOX/cur/** AND path:pvkorytov_etu_mbox/** AND tag:inbox AND tag:pvkorytov" | xargs -I ! mv ! ~/Mail/pvkorytov_etu_mbox/INBOX/cur/
notmuch search --output=files "NOT path:pvkorytov_etu_mbox/Sent/cur/** AND path:pvkorytov_etu_mbox/** AND tag:sent AND tag:pvkorytov" | xargs -I ! mv ! ~/Mail/pvkorytov_etu_mbox/Sent/cur/
notmuch search --output=files "NOT path:pvkorytov_etu_mbox/Junk/cur/** AND path:pvkorytov_etu_mbox/** AND tag:spam AND tag:pvkorytov" | xargs -I ! mv ! ~/Mail/pvkorytov_etu_mbox/Junk/cur/
notmuch search --output=files "NOT path:pvkorytov_etu_mbox/Trash/cur/** AND path:pvkorytov_etu_mbox/** AND tag:trash AND tag:pvkorytov" | xargs -I ! mv ! ~/Mail/pvkorytov_etu_mbox/Trash/cur/
notmuch search --output=files "NOT path:pvkorytov_etu_mbox/Job_Digital/cur/** AND path:pvkorytov_etu_mbox/** AND tag:job.digital AND tag:pvkorytov" | xargs -I ! mv ! ~/Mail/pvkorytov_etu_mbox/Job_Digital/cur/
notmuch search --output=files "NOT path:pvkorytov_etu_mbox/Job_Digital.Docs/cur/** AND path:pvkorytov_etu_mbox/** AND tag:job.digital.docs AND tag:pvkorytov" | xargs -I ! mv ! ~/Mail/pvkorytov_etu_mbox/Job_Digital.Docs/cur/
notmuch search --output=files "NOT path:pvkorytov_etu_mbox/Job_Digital.Support/cur/** AND path:pvkorytov_etu_mbox/** AND tag:job.digital.support AND tag:pvkorytov" | xargs -I ! mv ! ~/Mail/pvkorytov_etu_mbox/Job_Digital.Support/cur/
notmuch search --output=files "NOT path:pvkorytov_etu_mbox/Job_Digital.Superservice/cur/** AND path:pvkorytov_etu_mbox/** AND tag:job.digital.superservice AND tag:pvkorytov" | xargs -I ! mv ! ~/Mail/pvkorytov_etu_mbox/Job_Digital.Superservice/cur/
notmuch search --output=files "NOT path:pvkorytov_etu_mbox/Job_Digital.Applicants/cur/** AND path:pvkorytov_etu_mbox/** AND tag:job.digital.applicants AND tag:pvkorytov" | xargs -I ! mv ! ~/Mail/pvkorytov_etu_mbox/Job_Digital.Applicants/cur/
notmuch search --output=files "NOT path:pvkorytov_etu_mbox/Job_Digital.Testers/cur/** AND path:pvkorytov_etu_mbox/** AND tag:job.digital.testers AND tag:pvkorytov" | xargs -I ! mv ! ~/Mail/pvkorytov_etu_mbox/Job_Digital.Testers/cur/
notmuch search --output=files "NOT path:pvkorytov_etu_mbox/Job_Moevm/cur/** AND path:pvkorytov_etu_mbox/** AND tag:job.moevm AND tag:pvkorytov" | xargs -I ! mv ! ~/Mail/pvkorytov_etu_mbox/Job_Moevm/cur/
notmuch search --output=files "NOT path:pvkorytov_etu_mbox/Etu/cur/** AND path:pvkorytov_etu_mbox/** AND tag:etu AND tag:pvkorytov" | xargs -I ! mv ! ~/Mail/pvkorytov_etu_mbox/Etu/cur/
notmuch search --output=files "NOT path:pvkorytov_etu_mbox/Etu.Grad_School/cur/** AND path:pvkorytov_etu_mbox/** AND tag:etu.grad-school AND tag:pvkorytov" | xargs -I ! mv ! ~/Mail/pvkorytov_etu_mbox/Etu.Grad_School/cur/
notmuch search --output=files "NOT path:pvkorytov_etu_mbox/Archive/cur/** AND path:pvkorytov_etu_mbox/** AND NOT tag:inbox AND NOT tag:sent AND NOT tag:spam AND NOT tag:trash AND NOT tag:job.digital AND NOT tag:job.digital.docs AND NOT tag:job.digital.support AND NOT tag:job.digital.superservice AND NOT tag:job.digital.applicants AND NOT tag:job.digital.testers AND NOT tag:job.moevm AND NOT tag:etu AND NOT tag:etu.grad-school AND tag:pvkorytov" | xargs -I ! mv ! ~/Mail/pvkorytov_etu_mbox/Archive/cur/
echo "Pre-new filters done" echo "Pre-new filters done"
parallel --link -j0 "(cd /home/pavel/Mail/{1}/ && {2} {3})" ::: thexcloud progin6304 pvkorytov_etu ::: "$GMI" "$GMI" "offlineimap" ::: sync sync "" parallel --link -j0 "(cd /home/pavel/Mail/{1}/ && {2} {3})" ::: thexcloud progin6304 pvkorytov_etu ::: "$GMI" "$GMI" "offlineimap" ::: sync sync ""