Browse Source
Another way to implement SMTP notify hook
Another way to implement SMTP notify hook
Use mailx to implement SMTP notify hookpull/3369/head
committed by
GitHub
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 75 additions and 7 deletions
@ -1,15 +1,83 @@ |
|||
#!/usr/bin/env sh |
|||
|
|||
# support smtp |
|||
|
|||
smtp_send() { |
|||
_subject="$1" |
|||
_content="$2" |
|||
_statusCode="$3" #0: success, 1: error 2($RENEW_SKIP): skipped |
|||
if ! _exists "mailx"; then |
|||
_err "You must install mailx to send email by SMTP" |
|||
return 1 |
|||
fi |
|||
|
|||
SMTP_FROM="${SMTP_FROM:-$(_readaccountconf_mutable SMTP_FROM)}" |
|||
if [ -z "$SMTP_FROM" ]; then |
|||
_err "You must define SMTP_FROM as the sender email address." |
|||
return 1 |
|||
fi |
|||
|
|||
SMTP_TO="${SMTP_TO:-$(_readaccountconf_mutable SMTP_TO)}" |
|||
if [ -z "$SMTP_TO" ]; then |
|||
_err "You must define SMTP_TO as the recipient email address." |
|||
return 1 |
|||
fi |
|||
|
|||
SMTP_HOST="${SMTP_HOST:-$(_readaccountconf_mutable SMTP_HOST)}" |
|||
if [ -z "$SMTP_HOST" ]; then |
|||
_err "You must define SMTP_HOST as the SMTP server hostname." |
|||
return 1 |
|||
fi |
|||
|
|||
SMTP_USERNAME="${SMTP_USERNAME:-$(_readaccountconf_mutable SMTP_USERNAME)}" |
|||
SMTP_PASSWORD="${SMTP_PASSWORD:-$(_readaccountconf_mutable SMTP_PASSWORD)}" |
|||
SMTP_CONTEXT="${SMTP_CONTEXT:-$(_readaccountconf_mutable SMTP_CONTEXT)}" |
|||
|
|||
_saveaccountconf_mutable SMTP_FROM "$SMTP_FROM" |
|||
_saveaccountconf_mutable SMTP_TO "$SMTP_TO" |
|||
_saveaccountconf_mutable SMTP_HOST "$SMTP_HOST" |
|||
_saveaccountconf_mutable SMTP_USERNAME "$SMTP_USERNAME" |
|||
_saveaccountconf_mutable SMTP_PASSWORD "$SMTP_PASSWORD" |
|||
_saveaccountconf_mutable SMTP_CONTEXT "$SMTP_CONTEXT" "base64" |
|||
|
|||
if ! _smtp_send "$@"; then |
|||
_err "$smtp_send_output" |
|||
return 1 |
|||
fi |
|||
|
|||
return 0 |
|||
} |
|||
|
|||
_smtp_send() { |
|||
_subject="${1}" |
|||
_content="${2}" |
|||
_statusCode="${3}" |
|||
_debug "_subject" "$_subject" |
|||
_debug "_content" "$_content" |
|||
_debug "_statusCode" "$_statusCode" |
|||
|
|||
_err "Not implemented yet." |
|||
_debug "SMTP_FROM" "$SMTP_FROM" |
|||
_debug "SMTP_TO" "$SMTP_TO" |
|||
_debug "SMTP_HOST" "$SMTP_HOST" |
|||
_debug "SMTP_USERNAME" "$SMTP_USERNAME" |
|||
_debug "SMTP_PASSWORD" "$SMTP_PASSWORD" |
|||
|
|||
if [ "${DEBUG:-$DEBUG_LEVEL_NONE}" -ge "$DEBUG_LEVEL_2" ]; then |
|||
smtp_debug="True" |
|||
else |
|||
smtp_debug="" |
|||
fi |
|||
|
|||
smtp_send_output="$(echo "${_content}" | mailx -v \ |
|||
-s "${_subject}" \ |
|||
-S ssl-verify=ignore\ |
|||
-S smtp="${SMTP_HOST}" \ |
|||
-S smtp-auth=login \ |
|||
-S smtp-auth-user="${SMTP_USERNAME}" \ |
|||
-S smtp-auth-password="${SMTP_PASSWORD}" \ |
|||
-S from="${SMTP_FROM}" \ |
|||
"${SMTP_TO}" 2>&1)" |
|||
|
|||
_debug "smtp_send_output" "$smtp_send_output" |
|||
|
|||
if [ $smtp_send_output =~ "message not sent" ]; then |
|||
return 1 |
|||
else |
|||
return 0 |
|||
fi |
|||
} |
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue