jaromail

a commandline tool to easily and privately handle your e-mail
git clone git://parazyd.org/jaromail.git
Log | Files | Refs | Submodules | README

commit 98c8671e7e4e0bc8e28d2781d09ba98b0818a893
parent 03ea4fbb0bc670324c73d0eff0421a89b4187b87
Author: Jaromil <jaromil@dyne.org>
Date:   Wed,  2 Dec 2015 19:36:44 +0100

documentation for release

Diffstat:
MChangeLog.md | 17+++++++++++++++--
MREADME.md | 4++--
Mdoc/jaromail-manual.org | 6+++++-
Msrc/jaro | 4++--
Msrc/zlibs/addressbook | 23+++++++++++++----------
Msrc/zlibs/maildirs | 6+++++-
Msrc/zlibs/parse | 1+
7 files changed, 43 insertions(+), 18 deletions(-)

diff --git a/ChangeLog.md b/ChangeLog.md @@ -1,7 +1,20 @@ # JaroMail ChangeLog -## 3.2 -## 25 Jan 2015 +## 4.0 +## 10 Nov 2015 + +This release brings a refactoring of all commands for shell pipe +interoperability, which also reduced the overall size of code. The +user manual reflect changes and shows several examples on how to +combine "search", "extract" and other commands to manage statistics, +groups and addressbooks. New fetures include: revamped terminal +statistics, improved abook conversion, improved secure protocol checks +and locking mechanisms. + + + + +## 3.2 25 Jan 2015 New ZSh completion extension, now capable of tab-completion for addresses, maildirs and even remote imap folders. Included diff --git a/README.md b/README.md @@ -10,7 +10,7 @@ *A commandline tool to easily and privately handle your e-mail* -Version: **3.2** +Version: **4.0** Updates on: http://dyne.org/software/jaro-mail @@ -136,7 +136,7 @@ by Denis Roio aka [Jaromil](http://jaromil.dyne.org). Jaro Mail would have never been possible without the incredible amount of Love shared by the free and open source community, a more complete list of contributors is included in the [user manual](https://files.dyne.org/jaromail/jaromail-manual.pdf) in the `Acknowledgments` section. -Jaro Mail is Copyright (C) 2010-2014 Denis Roio <jaromil@dyne.org> +Jaro Mail is Copyright (C) 2010-2015 Denis Roio <jaromil@dyne.org> This source code is free software; you can redistribute it and/or modify it under the terms of the GNU Public License as published by diff --git a/doc/jaromail-manual.org b/doc/jaromail-manual.org @@ -75,6 +75,7 @@ this manual is made available on http://files.dyne.org/jaromail/jaromail-manual. + Automatically generates filter rules (sieve) + Imports and exports VCard contacts to addressbook + Computes and shows statistics on mail traffic + + Facilitates sending anonymous emails (Mixmaster) + Encrypted password storage using OS native keyrings + Advanced maildir tools (merge, backup, address extraction) + Defers connections for off-line operations @@ -139,10 +140,13 @@ and actions involved in managing one's email communication: | MTA | Mail Transport Agent | [[http://www.fetchmail.info][Fetchmail]] | | LDA | Local Delivery Agent | Jaro Mail | | MDA | Remote Delivery Agent | [[http://en.wikipedia.org/wiki/Sieve_(mail_filtering_language)][Sieve]] | - | SMTP | Mail Delivery Agent | [[http://msmtp.sourceforge.net][MSmtp]] | + | SMTP | Mail delivery agent | [[http://msmtp.sourceforge.net][MSmtp]] | + | ANON | Anonymous delivery | [[http://mixmaster.sourceforge.net/][MixMaster]] | | | Search engine | [[http://notmuchmail.org/][Notmuch]] | | | Addressbook | [[http://abook.sf.net][ABook]] | | GPG | Cryptographic Agent | [[http://www.gnupg.org][GnuPG]] | + | STORE | Cryptographic Storage | [[http://www.dyne.org/software/Tomb][Tomb]] | + #+LATEX: \pagebreak diff --git a/src/jaro b/src/jaro @@ -527,7 +527,7 @@ main() { subcommands_opts[deliver]="" subcommands_opts[passwd]="" - subcommands_opts[cert]="" + # subcommands_opts[cert]="" subcommands_opts[source]="" @@ -784,7 +784,7 @@ main() { passwd) new_password ;; - cert) cert ${PARAM} ;; # was checking is_online + # cert) cert ${PARAM} ;; # was checking is_online isonline) is_online ${=PARAM}; exitcode=$? ;; diff --git a/src/zlibs/addressbook b/src/zlibs/addressbook @@ -36,8 +36,8 @@ create_addressbook() { [[ -r "$MAILDIRS"/Addressbook ]] && { notice "Updating the old addressbook to a new format" _list=$list - list=blacklist; export_abook - list=whitelist; export_abook + list=blacklist; export_old_to_abook + list=whitelist; export_old_to_abook list=$_list mv "$MAILDIRS"/Addressbook "$MAILDIRS"/Addressbook.old } @@ -339,7 +339,7 @@ import() { # export old addressbook format to abook -export_abook() { +export_old_to_abook() { [[ -r $MAILDIRS/Addressbook ]] || { notice "Old addressbook format not found" @@ -392,12 +392,11 @@ EOF } # export addressbook to vcard -export_vcard() { - fn export_vcard $* - +convert_addresses() { + fn convert_addresses $* _format=${1:-vcard} - notice "Reading from stdin addresses to export to format $_format" + notice "Converting stdin addresses to format $_format" c=0 ztmp for i in "${(f)$(cat)}"; do @@ -412,14 +411,18 @@ export_vcard() { _res=$? - [[ $_res = 0 ]] && { - notice "$c addresses converted to $_format" } + if [[ $_res = 0 ]]; then + notice "$c addresses converted to $_format" + else + error "Abook fails to convert addresses to format: $_format" + fi + return $_res } edit_abook() { - abook --config <(sysread <<EOF + abook --config <(cat <<EOF set autosave=true set mutt_command=jaro compose set sort_field=name diff --git a/src/zlibs/maildirs b/src/zlibs/maildirs @@ -172,6 +172,7 @@ merge() { c=0 for i in ${(f)fr}; do + refile "$i" "$_dst" [[ $? = 0 ]] || { # bail out on every single error @@ -232,7 +233,10 @@ maildir_shift() { pos=${srcarr[$(( $srcnum - 1 ))]} func "$cmd $f ${dst}/${pos}/" - [[ $DRYRUN = 0 ]] && ${=cmd} $f ${dst}/${pos}/ + [[ $DRYRUN = 0 ]] && { + ${=cmd} $f ${dst}/${pos}/ + print -n . + } done return 0 } diff --git a/src/zlibs/parse b/src/zlibs/parse @@ -48,6 +48,7 @@ extract_mails() { _match=() for m in ${mailpaths}; do + [[ $global_quit = 1 ]] && break # use RFC822 parser in fetchaddr _parsed=`hdr $m | ${WORKDIR}/bin/fetchaddr ${=_arg} -a` for _p in ${(f)_parsed}; do