#!/bin/bash function usage { echo 'usage: [USERNAME PASSWORD]' exit 1 } function connect_server { openssl s_client -starttls smtp -connect "$server:587" -ign_eof 2>/dev/null </dev/null < port 587 ... " if connect_server | grep -q CONNECTED; then echo SUCCESSFUL CONNECTION else echo wrong server connection! && exit 1 fi } function check_smtp_auth { echo -n "check smtp authentication <$server> port 587 username=<$username> ... " set +e output=$(auth_server) if echo "$output" | grep -q CONNECTED; then if echo "$output" | grep -q "Authentication successful"; then echo SUCCESSFUL AUTHENTICATION else echo wrong username or password! && exit 2 fi else echo wrong server connection! && exit 1 fi set -e } ### MAIN set -Eeuo pipefail server=${1:-} username=${2:-} password=${3:-} [[ -z "$server" ]] && usage if [[ -z "$username" ]]; then check_smtp_connection else [[ -z "$password" ]] && usage check_smtp_auth fi