EMDIS-ECS
view release on metacpan or search on metacpan
SMTP server connection
- LockedHash.pm: tweak error messages
- Config.pm: add support for new configuration settings:
INBOX_USE_SSL, SMTP_PASSWORD, SMTP_PORT, SMTP_USE_SSL, SMTP_USERNAME
- ecs_setup: add support for new configuration settings:
INBOX_USE_SSL, SMTP_PASSWORD, SMTP_PORT, SMTP_USE_SSL, SMTP_USERNAME
- ecs_setup: change default outbound mail storage option from [m] (maildrop)
to [t] (to_XX and from_XX)
- Dockerfile.ubuntu: Dockerfile for docker image based on Ubuntu 14.04
- Dockerfile.centos: Dockerfile for docker image based on CentOS 7
Version 0.34, 2015-08-31
========================
- ecstool: add --nodedata command, for importing and exporting node table
- ecs_setup: fix problem that could cause ECS_TO_DIR and ECS_FROM_DIR to be
omitted from output file when default mail storage option is selected
- Changes.pm: remove ADAPTER_CMD from the list of required attributes
Version 0.35, 2016-02-05
========================
- ecs_scan_mail: revise process_message subroutine to enable simultaneous
usage of FROM_DIR and ADAPTER_CMD configuration options
- ecs_scan_mail: in mbox_open subroutine, set $mbox->Ignoresizeerrors(1)
when using IMAP protocol
- MANIFEST: under web_status/images, add 22px and 60px flag images for CE,
DL, GR, HR, IN, LT, MK, RO, SI, UK, and WB
- Makefile.PL: add CPAN::Version to PREREQ_PM
Version 0.36, 2016-02-29
========================
- Change namespace from ECS to EMDIS::ECS, so this module can later be
added to CPAN without needing to occupy a top-level namespace.
- ecs_setup: revise descriptions of INBOX_PASSWORD and SMTP_PASSWORD
to say "password" instead of "user name"
- ecs_setup: if available, take ECS_TO_DIR and ECS_FROM_DIR from existing
configuration file
- Config.pm: add brief ADAPTER_CMD example to embedded documentation
Version 0.37, 2016-09-28
========================
- Dockerfile.centos: install EMDIS::ECS from CPAN instead of using tarball
- Dockerfile.ubuntu: install EMDIS::ECS from CPAN instead of using tarball
- ECS.pm: in send_mail subroutine, add MIME and encoding headers, so MTAs
like Microsoft Exchange should not change the encoding
- Message.pm: use MIME::QuotedPrint to automatically decode messages which
were encoded during transmission
- ecs_scan_mail: fix some log messages which were not correctly
interpolated or produced errors, and adjust usage of ECS::Message
Version 0.38, 2016-11-30
========================
- ECS.pm: in openpgp_decrypt, openpgp_encrypt, pgp2_decrypt, and pgp2_encrypt
subroutines, revise code that composes encryption commands to handle multiple
occurrences of special symbols such as __INPUT__, __OUTPUT__, __RECIPIENT__,
and __SELF__
- Config.pm: add "--local-user __SELF__" to OPENPGP_CMD_ENCRYPT default value
- LICENSE: revise copyright notice for 2016
Version 0.39, 2016-12-05
========================
- ecs_setup: change GPG_HOMEDIR default value to /home/username/gpg and
PGP_HOMEDIR default value to /home/username/pgp
- Config.pm: add "-u __SELF__" to PGP2_CMD_ENCRYPT default value
- ECS.pm: add encr_out_keyid and encr_out_passphrase properties to NODE_TBL;
add encr_out_keyid and encr_out_passphrase parameters to
send_encrypted_email, openpgp_encrypt, and pgp2_encrypt subroutines; add
encr_out_passphrase parameter to openpgp_decrypt and pgp2_decrypt subroutines
- FileBackedMessage.pm: revise usage of send_encrypted_email subroutine
- Message.pm: revise usage of openpgp_decrypt and pgp2_decrypt subroutines
- ecstool: add encr_out_keyid and encr_out_passphrase properties to NODE_TBL;
revise usage of openpgp_decrypt and pgp2_decrypt subroutines; adjust
formatting of ecstool --view output
Version 0.40, 2018-03-19
========================
- ecstool: revise regex to avoid "Unescaped left brace in regex is illegal"
error
- Config.pm: add INBOX_USE_STARTTLS and SMTP_USE_STARTTLS settings;
assign default INBOX_PORT and SMTP_PORT
- ecs_setup: add INBOX_USE_STARTTLS and SMTP_USE_STARTTLS settings; allow
GPG_PASSPHRASE to be the empty string (don't initialize with 'gpgpg')
- ECS.pm: add subroutines is_yes and is_no; add support for
SMTP_USE_STARTTLS; perform SMTP authentication only if both
SMTP_USERNAME and SMTP_PASSWORD are configured; eliminate compile-time
circular dependency between ECS.pm and other modules (Config.pm,
LockedHash.pm); revise openpgp_decrypt and openpgp_encrypt subroutines
to handle empty GPG_PASSPHRASE (avoid broken pipe error)
- ecs_scan_mail: add support for INBOX_USE_STARTTLS
- Dockerfile.centos: enable step that installs modules from CPAN into
local-lib directory; various other tweaks and additions; move to
docker/centos/Dockerfile
- Dockerfile.ubuntu: update to use Ubuntu 16.04; move to
docker/ubuntu/Dockerfile
- docker/dist/Dockerfile: new Dockerfile to build distribution artifacts
and to facilitate testing of email communications
- docker/greenmail/Dockerfile: new Dockerfile to provide SMTP, POP3, and
IMAP email services for testing of email communications
Version 0.41, 2020-12-08
========================
- add Python scripts for AMQP 1.0 messaging using Apache Qpid Proton:
ecs_amqp_recv.py, ecs_amqp_send.py
- docker/ubuntu: update to use Ubuntu 18.04; add Python 3 and Python
Qpid Proton to enable use of AMQP 1.0 scripts
- docker/centos: add Python 3 and Python Qpid Proton to enable use of
AMQP 1.0 scripts
- docker/qpid-broker-cpp: add Docker setup for AMQP broker using
Apache Qpid Broker-CPP (via RHEL/CentOS packages from EPEL repo)
- docker/dist: add test nodes DD and EE for testing AMQP communications,
along with AMQP configuration for test node AA, and supporting resources
- Config.pm: add AMQP-related configuration settings; enable use of
INBOX_PROTOCOL "NONE"
- FileBackedMessage.pm: enable use of either email or AMQP to send message,
deprecate inspect_fml subroutine, make modifications to support document
exchange
- Message.pm: make modifications to support document exchange
- ECS.pm: enable use of either email or AMQP to send messages, enable
use of custom properties/headers in AMQP/email messages, make
modifications to support document exchange
- ecs_scan_mail: enable use of either email or AMQP to send and receive
messages, add process_document subroutine, make modifications to support
document exchange
- ecs_proc_meta: enable use of either email or AMQP to send messages,
add support for DOC_MSG_ACK and DOC_RE_SEND meta messages
- ecs_chk_com: enable use of either email or AMQP to send messages
- ecstool: enable use of either email or AMQP to send messages; define
AMQP-related properties usable in node table, to enable node-level
customization of AMQP parameters, add support for DOC_MSG_ACK and
DOC_RE_SEND meta messages
- ecs_setup: add support for AMQP-related configuration settings
Version 0.42, 2020-12-19
========================
- ECS.pm: revise code to avoid "Experimental keys on scalar is now forbidden"
error using newer versions of Perl
Version 0.43, 2021-04-21
========================
- ECS.pm: in send_encrypted_message(), fix defect causing AMQP document to be
sent via regular AMQP message queue
- FileBackedMessage.pm: in send_this_message(), when sending unencrypted META
message, guard against sending via email if node is configured for amqp_only
- MANIFEST: add docker/ubuntu/README_GPG
- greenmail/Dockerfile: update to use greenmail/standalone:1.6.3
- generate updated certfiles.tar.gz files for dockerized test setup
- adjust various Dockerfile comments
Version 0.44 2025-04-23
=======================
- ECS.pm: in send_email(), set "From" header
- ecs_amqp_recv.py: use SSLDomain to configure SSL, revise connection teardown
to avoid causing transport error in broker: 'SSL Failure: error:0A000126:SSL
routines::unexpected eof while reading'
- ecs_amqp_send.py: use SSLDomain to configure SSL
- docker/centos/Dockerfile: modify to use post-EOL CentOS 7
- docker/dist/Dockerfile: modify to use Rocky Linux 9, revise tarball expansion
steps to guarantee perlecs:perlecs file ownership; add README_GPG,
README_SMOKE_TESTING, and generate_ca_and_certfiles.sh files
- docker/dist/certfiles.tar.gz: replace certificates with updated ones
- docker/dist/ecs-*.tar.gz: in ecs.cfg, add "--pinentry-mode loopback" to gpg
commands (see README_GPG for additional info)
- docker/dist/gnupg.tar.gz: update .gnupg snapshot for Rocky Linux 9 and add
gpg-agent.conf to allow-loopback-pinentry (see README_GPG for additional info)
- docker/qpid-broker-cpp/Dockerfile: modify to use post-EOL CentOS 7
- docker/qpid-broker-cpp/generate_ca_and_certfiles.sh: modify to use openssl
directly instead of using globus-simple-ca -- additionally, move this script
to docker/dist
- docker/qpid-broker-python: add Docker setup for Python AMQP test broker
(files added: Dockerfile, pybroker.conf, pybroker.py, run_broker.sh)
Version 0.45 2025-07-21
=======================
- Config.pm: add ENABLE_ENV_CONFIG setting, along with support for $ENV{envvar}
syntax to define configuration settings using environment variable values;
add INBOX_OAUTH_TOKEN_CMD, INBOX_OAUTH_TOKEN_CMD_TIMELIMIT,
INBOX_OAUTH_SASL_MECHANISM, SMTP_OAUTH_TOKEN_CMD,
SMTP_OAUTH_TOKEN_CMD_TIMELIMIT, and SMTP_OAUTH_SASL_MECHANISM settings;
add "--pinentry-mode loopback" to default OPENPGP_CMD_ENCRYPT and
OPENPGP_CMD_DECRYPT values
- ECS.pm: add support for SASL XOAUTH2 and OAUTHBEARER authentication
mechanisms on SMTP connection
- ecs_scan_mail: add support for SASL XOAUTH2 and OAUTHBEARER authentication
mechanisms on POP3 and IMAP connections
- ecs_setup: add configuration options for "modern" OAuth 2.0 authentication
- ecs_token: add this as example OAuth 2.0 token request helper script for
INBOX_OAUTH_TOKEN_CMD and SMTP_OAUTH_TOKEN_CMD
- docker/dist/Dockerfile: add diffutils, pass (unix password manager),
perl-libwww-perl, and perl-LWP-Protocol-https packages; install
Authen::SASL::Perl via CPAN; remove code to install Net::SMTP, Net::POP3
and IO::Socket::SSL via CPAN
- docker/rockylinux/Dockerfile: add diffutils, pass (unix password manager),
perl-libwww-perl, and perl-LWP-Protocol-https packages; install
Authen::SASL::Perl via CPAN
- docker/ubuntu/Dockerfile: update to use Ubuntu 24.04; add pass (unix
password manager) package; install Authen::SASL::Perl via CPAN
- LICENSE: restore missing AGNIS license language about NIH
Version 0.46 2025-09-12
=======================
- ECS.pm: improve introductory info in embedded documentation
- ecs_token: use gpgconf to ensure gpg-agent is started before presetting
passphrase; in embedded documentation, add SASL related links, add info
about environment variables, and make adjustments to improve generated
PDF output
- generate_pdf.sh: add script/ecs_token
- docker/dist/Dockerfile: add gnupg1 package (provides gpg1)
- docker/rockylinux/Dockerfile: add gnupg1 package (provides gpg1)
- docker/ubuntu/Dockerfile: add gnupg1 package (provides gpg1)
Version 0.47 2025-10-01
=======================
- ECS.pm: fix typo in embedded documentation
- ecstool: add jsondump operation to --nodedata command
- Makefile.PL: add JSON::PP dependency
Version 0.48 2026-01-11
=======================
- ECS.pm: in pgp2_decrypt and pgp2_encrypt subroutines, pipe passphrase
to command being executed, to support usage of gpg1 in place of pgp2
- docker/greenmail/Dockerfile: update base image version and revise
ENV GREENMAIL_OPTS declaration to resolve LegacyKeyValueFormat error
Version 0.49 2026-03-20
=======================
- Config.pm: allow for special LOG_FILE value "__STDOUT__"
- ECS.pm: modify log() subroutine to send its output to STDOUT if
$cfg->LOG_FILE is "__STDOUT__"
- ecs_token: make $SECSTOR_TIMELIMIT and $TOKEN_CACHE_EXPIRATION_MARGIN
configurable; increase $SECSTOR_TIMELIMIT default value to 30
- docker/centos: removed as obsolete due to CentOS 7 end-of-life (was
June 30, 2024)
- docker/dist/certfiles.tar.gz: replace expired certificates
- docker/dist/Dockerfile: remove gnupg1 package and add note about its
removal from EPEL in late 2025
- docker/dist/generate_ca_and_certfiles.sh: increase x509 certificate
expiration -days to 3650
- docker/qpid-broker-cpp: removed as obsolete due to CentOS 7 end-of-life
- docker/rockylinux/Dockerfile: remove gnupg1 package and add note about
its removal from EPEL in late 2025
Version 0.50 2026-05-10
=======================
- Config.pm: add T_INBOUND setting with default value 2400
- ecs_setup: add T_INBOUND setting
- ecs_scan_mail: update processing loop to fully implement processing
cutoff times based on T_SCN and T_INBOUND - this is useful when running
"ecs_scan_mail --once" under an environment such as AWS Lambda, to have
the program exit cleanly after some amount of time
- ecs_amqp_recv.py: add --timelimit command line parameter to set
execution time limit; add code to control receiver link flow credit
(to limit and enable message delivery)
( run in 0.786 second using v1.01-cache-2.11-cpan-df04353d9ac )