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 c177c8c3c830eceaf8ba7a4dee2fced7a3f8d776
parent 2280d712cfe88bbfd4551b38f83ad91db46f52b4
Author: Jaromil <jaromil@dyne.org>
Date:   Thu,  7 Apr 2016 09:27:56 +0200

fixed imap query system, added imap console

Diffstat:
Msrc/jaro | 70+++++++++++++++++++++++++++++++++++++++++-----------------------------
Msrc/zlibs/accounts | 11+++++++----
Msrc/zlibs/imap | 6+++---
Msrc/zlibs/keyring | 1+
4 files changed, 52 insertions(+), 36 deletions(-)

diff --git a/src/jaro b/src/jaro @@ -811,35 +811,47 @@ main() { imap) imapcmd="$1" case $1 in - getsize) - read_account $account - ask_password - bytes_total=`imap_get_size "$2"` - exitcode=$? - notice "Size of account $login on $imap" - act "$bytes_total bytes" - mib_total=$(( $bytes_total / 1048576 )) - act "$mib_total MB (MiB)" - ;; - listfolders) - read_account $account - ask_password - folders=(`imap_list_folders`) - exitcode=$? - notice "List of folders for $login on $imap" - for f in $folders; do print - "$f"; done \ - | save_replay $subcommand | column - - ;; - # interactive) - # read_account - # ask_password - # imap_interactive_shell - # exitcode=$? - # ;; - *) - error "imap needs a subcommand: getsize or listfolders" - ;; + console) + read_account $account + host=${imap:-$host} + ask_password + func "$login $password" + cat <<EOF | run_imap_query +B00000 CAPABILITY +B00001 LOGIN "${login}" "${password}" +EOF + ;; + getsize) + read_account $account + host=${imap:-$host} + ask_password + bytes_total=`imap_get_size "$2"` + exitcode=$? + notice "Size of account $login on $imap" + act "$bytes_total bytes" + mib_total=$(( $bytes_total / 1048576 )) + act "$mib_total MB (MiB)" + ;; + listfolders) + read_account $account + host=${imap:-$host} + ask_password + folders=(`imap_list_folders`) + exitcode=$? + notice "List of folders for $login on $imap" + for f in $folders; do print - "$f"; done \ + | save_replay $subcommand | column + + ;; + # interactive) + # read_account + # ask_password + # imap_interactive_shell + # exitcode=$? + # ;; + *) + error "imap needs a subcommand: getsize or listfolders" + ;; esac ;; diff --git a/src/zlibs/accounts b/src/zlibs/accounts @@ -75,11 +75,14 @@ read_account() { # check required fields # falling back to old host/port conf directives + imap=${imap:-$host} + host=${host:-$imap} - { test -z $imap } && { imap=$host } - { test -z $smtp } && { smtp=$imap } - { test -z $imap_port } && { imap_port=$port } - { test -z $smtp_port } && { smtp_port=$imap_port } + smtp=${smtp:-$host} + smtp=${smtp:-$imap} + + imap_port=${imap_port:-$port} + smtp_port=${smtp_port:-$imap_port} # fill in defaults { test -z $name } && { name="$type" } diff --git a/src/zlibs/imap b/src/zlibs/imap @@ -4,7 +4,7 @@ # # a tool to easily and privately handle your e-mail communication # -# Copyleft (C) 2010-2014 Denis Roio <jaromil@dyne.org> +# Copyleft (C) 2010-2016 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 @@ -32,10 +32,10 @@ run_imap_query() { nc ${imap} ${imap_port} -q 10 2>&1 elif [ "$_trans" = "tls" ]; then func "running tls imap query via openssl, encrypted" - openssl s_client -crlf -quiet -connect ${imap}:${imap_port} 2>&1 + openssl s_client -crlf -quiet -connect ${imap}:${imap_port} 2>&1 elif [ "$_trans" = "ssl" ]; then func "running ssl imap query via openssl, encrypted" - openssl s_client -starttls imap -quiet -connect ${imap}:${imap_port} 2>&1 + openssl s_client -starttls imap -quiet -connect ${imap}:${imap_port} 2>&1 else error "unknown transport \"$_trans\" for a imap query" fi diff --git a/src/zlibs/keyring b/src/zlibs/keyring @@ -41,6 +41,7 @@ EOF # up to the caller to unset it after use ask_password() { fn ask_password + req=(login host email account) ckreq || return 1