forked from Github/acme.sh
neil
6 years ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 481 additions and 13 deletions
-
262acme.sh
-
15notify/mail.sh
-
123notify/mailgun.sh
-
15notify/pop.sh
-
56notify/sendgrid.sh
-
15notify/smtp.sh
@ -0,0 +1,15 @@ |
|||
#!/usr/bin/env sh |
|||
|
|||
# support local mail app |
|||
|
|||
mail_send() { |
|||
_subject="$1" |
|||
_content="$2" |
|||
_statusCode="$3" #0: success, 1: error 2($RENEW_SKIP): skipped |
|||
_debug "_subject" "$_subject" |
|||
_debug "_content" "$_content" |
|||
_debug "_statusCode" "$_statusCode" |
|||
|
|||
_err "Not implemented yet." |
|||
return 1 |
|||
} |
@ -0,0 +1,123 @@ |
|||
#!/usr/bin/env sh |
|||
|
|||
#Support mailgun.com api |
|||
|
|||
#MAILGUN_API_KEY="xxxx" |
|||
#MAILGUN_TO="yyyy@gmail.com" |
|||
|
|||
#MAILGUN_REGION="us|eu" #optional, use "us" as default |
|||
#MAILGUN_API_DOMAIN="xxxxxx.com" #optional, use the default sandbox domain |
|||
#MAILGUN_FROM="xxx@xxxxx.com" #optional, use the default sendbox account |
|||
|
|||
_MAILGUN_BASE="https://api.mailgun.net/v3" |
|||
|
|||
# subject content statusCode |
|||
mailgun_send() { |
|||
_subject="$1" |
|||
_content="$2" |
|||
_statusCode="$3" #0: success, 1: error 2($RENEW_SKIP): skipped |
|||
_debug "_statusCode" "$_statusCode" |
|||
|
|||
MAILGUN_API_KEY="${MAILGUN_API_KEY:-$(_readaccountconf_mutable MAILGUN_API_KEY)}" |
|||
if [ -z "$MAILGUN_API_KEY" ]; then |
|||
MAILGUN_API_KEY="" |
|||
_err "You didn't specify a mailgun api key MAILGUN_API_KEY yet ." |
|||
_err "You can get yours from here https://mailgun.com" |
|||
return 1 |
|||
fi |
|||
_saveaccountconf_mutable MAILGUN_API_KEY "$MAILGUN_API_KEY" |
|||
|
|||
MAILGUN_REGION="${MAILGUN_REGION:-$(_readaccountconf_mutable MAILGUN_REGION)}" |
|||
if [ -z "$MAILGUN_REGION" ]; then |
|||
MAILGUN_REGION="" |
|||
_info "The MAILGUN_REGION is not set, so use the default us region." |
|||
_MAILGUN_BASE="https://api.mailgun.net/v3" |
|||
else |
|||
_saveaccountconf_mutable MAILGUN_REGION "$MAILGUN_REGION" |
|||
_MAILGUN_BASE="https://api.eu.mailgun.net/v3" |
|||
fi |
|||
|
|||
MAILGUN_TO="${MAILGUN_TO:-$(_readaccountconf_mutable MAILGUN_TO)}" |
|||
if [ -z "$MAILGUN_TO" ]; then |
|||
MAILGUN_TO="" |
|||
_err "You didn't specify an email to MAILGUN_TO receive messages." |
|||
return 1 |
|||
fi |
|||
_saveaccountconf_mutable MAILGUN_TO "$MAILGUN_TO" |
|||
|
|||
MAILGUN_API_DOMAIN="${MAILGUN_API_DOMAIN:-$(_readaccountconf_mutable MAILGUN_API_DOMAIN)}" |
|||
if [ -z "$MAILGUN_API_DOMAIN" ]; then |
|||
_info "The MAILGUN_API_DOMAIN is not set, try to get the default sending sandbox domain for you." |
|||
if ! _mailgun_rest GET "/domains"; then |
|||
_err "Can not get sandbox domain." |
|||
return 1 |
|||
fi |
|||
_sendboxDomain="$(echo "$response" | _egrep_o '"name": *"sandbox.*.mailgun.org"' | cut -d : -f 2 | tr -d '" ')" |
|||
_debug _sendboxDomain "$_sendboxDomain" |
|||
MAILGUN_API_DOMAIN="$_sendboxDomain" |
|||
if [ -z "$MAILGUN_API_DOMAIN" ]; then |
|||
_err "Can not get sandbox domain for MAILGUN_API_DOMAIN" |
|||
return 1 |
|||
fi |
|||
|
|||
_info "$(__green "When using sandbox domain, you must verify your email first.")" |
|||
#todo: add recepient |
|||
fi |
|||
if [ -z "$MAILGUN_API_DOMAIN" ]; then |
|||
_err "Can not get MAILGUN_API_DOMAIN" |
|||
return 1 |
|||
fi |
|||
_saveaccountconf_mutable MAILGUN_API_DOMAIN "$MAILGUN_API_DOMAIN" |
|||
|
|||
MAILGUN_FROM="${MAILGUN_FROM:-$(_readaccountconf_mutable MAILGUN_FROM)}" |
|||
if [ -z "$MAILGUN_FROM" ]; then |
|||
MAILGUN_FROM="$PROJECT_NAME@$MAILGUN_API_DOMAIN" |
|||
_info "The MAILGUN_FROM is not set, so use the default value: $MAILGUN_FROM" |
|||
else |
|||
_debug MAILGUN_FROM "$MAILGUN_FROM" |
|||
_saveaccountconf_mutable MAILGUN_FROM "$MAILGUN_FROM" |
|||
fi |
|||
|
|||
#send from url |
|||
_msg="/$MAILGUN_API_DOMAIN/messages?from=$(printf "%s" "$MAILGUN_FROM" | _url_encode)&to=$(printf "%s" "$MAILGUN_TO" | _url_encode)&subject=$(printf "%s" "$_subject" | _url_encode)&text=$(printf "%s" "$_content" | _url_encode)" |
|||
_debug "_msg" "$_msg" |
|||
_mailgun_rest POST "$_msg" |
|||
if _contains "$response" "Queued. Thank you."; then |
|||
_info "mailgun send success." |
|||
return 0 |
|||
else |
|||
_err "mailgun send error" |
|||
_err "$response" |
|||
return 1 |
|||
fi |
|||
|
|||
} |
|||
|
|||
# method uri data |
|||
_mailgun_rest() { |
|||
_method="$1" |
|||
_mguri="$2" |
|||
_mgdata="$3" |
|||
_debug _mguri "$_mguri" |
|||
_mgurl="$_MAILGUN_BASE$_mguri" |
|||
_debug _mgurl "$_mgurl" |
|||
|
|||
_auth="$(printf "%s" "api:$MAILGUN_API_KEY" | _base64)" |
|||
export _H1="Authorization: Basic $_auth" |
|||
export _H2="Content-Type: application/json" |
|||
|
|||
if [ "$_method" = "GET" ]; then |
|||
response="$(_get "$_mgurl")" |
|||
else |
|||
_debug _mgdata "$_mgdata" |
|||
response="$(_post "$_mgdata" "$_mgurl" "" "$_method")" |
|||
fi |
|||
if [ "$?" != "0" ]; then |
|||
_err "Error: $_mguri" |
|||
_err "$response" |
|||
return 1 |
|||
fi |
|||
_debug2 response "$response" |
|||
return 0 |
|||
|
|||
} |
@ -0,0 +1,15 @@ |
|||
#!/usr/bin/env sh |
|||
|
|||
# support pop |
|||
|
|||
pop_send() { |
|||
_subject="$1" |
|||
_content="$2" |
|||
_statusCode="$3" #0: success, 1: error 2($RENEW_SKIP): skipped |
|||
_debug "_subject" "$_subject" |
|||
_debug "_content" "$_content" |
|||
_debug "_statusCode" "$_statusCode" |
|||
|
|||
_err "Not implemented yet." |
|||
return 1 |
|||
} |
@ -0,0 +1,56 @@ |
|||
#!/usr/bin/env sh |
|||
|
|||
#Support SENDGRID.com api |
|||
|
|||
#SENDGRID_API_KEY="" |
|||
#SENDGRID_TO="xxxx@xxx.com" |
|||
#SENDGRID_FROM="xxxx@cccc.com" |
|||
|
|||
sendgrid_send() { |
|||
_subject="$1" |
|||
_content="$2" |
|||
_statusCode="$3" #0: success, 1: error 2($RENEW_SKIP): skipped |
|||
_debug "_statusCode" "$_statusCode" |
|||
|
|||
SENDGRID_API_KEY="${SENDGRID_API_KEY:-$(_readaccountconf_mutable SENDGRID_API_KEY)}" |
|||
if [ -z "$SENDGRID_API_KEY" ]; then |
|||
SENDGRID_API_KEY="" |
|||
_err "You didn't specify a sendgrid api key SENDGRID_API_KEY yet ." |
|||
_err "You can get yours from here https://sendgrid.com" |
|||
return 1 |
|||
fi |
|||
_saveaccountconf_mutable SENDGRID_API_KEY "$SENDGRID_API_KEY" |
|||
|
|||
SENDGRID_TO="${SENDGRID_TO:-$(_readaccountconf_mutable SENDGRID_TO)}" |
|||
if [ -z "$SENDGRID_TO" ]; then |
|||
SENDGRID_TO="" |
|||
_err "You didn't specify an email to SENDGRID_TO receive messages." |
|||
return 1 |
|||
fi |
|||
_saveaccountconf_mutable SENDGRID_TO "$SENDGRID_TO" |
|||
|
|||
SENDGRID_FROM="${SENDGRID_FROM:-$(_readaccountconf_mutable SENDGRID_FROM)}" |
|||
if [ -z "$SENDGRID_FROM" ]; then |
|||
SENDGRID_FROM="" |
|||
_err "You didn't specify an email to SENDGRID_FROM receive messages." |
|||
return 1 |
|||
fi |
|||
_saveaccountconf_mutable SENDGRID_FROM "$SENDGRID_FROM" |
|||
|
|||
export _H1="Authorization: Bearer $SENDGRID_API_KEY" |
|||
export _H2="Content-Type: application/json" |
|||
|
|||
_content="$(echo "$_content" | _json_encode)" |
|||
_data="{\"personalizations\": [{\"to\": [{\"email\": \"$SENDGRID_TO\"}]}],\"from\": {\"email\": \"$SENDGRID_FROM\"},\"subject\": \"$_subject\",\"content\": [{\"type\": \"text/plain\", \"value\": \"$_content\"}]}" |
|||
response="" #just make shellcheck happy |
|||
if _post "$_data" "https://api.sendgrid.com/v3/mail/send"; then |
|||
if [ -z "$response" ]; then |
|||
_info "sendgrid send sccess." |
|||
return 0 |
|||
fi |
|||
fi |
|||
_err "sendgrid send error." |
|||
_err "$response" |
|||
return 1 |
|||
|
|||
} |
@ -0,0 +1,15 @@ |
|||
#!/usr/bin/env sh |
|||
|
|||
# support smtp |
|||
|
|||
smtp_send() { |
|||
_subject="$1" |
|||
_content="$2" |
|||
_statusCode="$3" #0: success, 1: error 2($RENEW_SKIP): skipped |
|||
_debug "_subject" "$_subject" |
|||
_debug "_content" "$_content" |
|||
_debug "_statusCode" "$_statusCode" |
|||
|
|||
_err "Not implemented yet." |
|||
return 1 |
|||
} |
Write
Preview
Loading…
Cancel
Save
Reference in new issue