2 Commits
97139919fb
...
72ed035132
Author | SHA1 | Message | Date |
---|---|---|---|
pvincent | 72ed035132 |
smtp-check
|
2 weeks ago |
pvincent | d25d8ab992 |
smtp-check
|
2 weeks ago |
2 changed files with 95 additions and 29 deletions
@ -0,0 +1,63 @@ |
|||
#!/bin/bash |
|||
|
|||
function usage { |
|||
echo 'usage: <SERVER> [USERNAME PASSWORD]' |
|||
exit 1 |
|||
} |
|||
|
|||
function connect_server { |
|||
openssl s_client -starttls smtp -connect "$server:587" -ign_eof 2>/dev/null <<EOF |
|||
quit |
|||
EOF |
|||
} |
|||
|
|||
function auth_server { |
|||
base64=$(echo -ne "\0$username\0$password" | base64) |
|||
openssl s_client -starttls smtp -connect "$server:587" -ign_eof 2>/dev/null <<EOF |
|||
ehlo . |
|||
auth plain $base64 |
|||
quit |
|||
EOF |
|||
} |
|||
|
|||
function check_smtp_connection { |
|||
echo -n "check smtp server <$server> port 587 ... " |
|||
if connect_server | grep -q CONNECTED; then |
|||
echo SUCCESS |
|||
else |
|||
echo FAILURE && 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 OK |
|||
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 |
Write
Preview
Loading…
Cancel
Save
Reference in new issue