Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3f9fa1f9c9 |
@@ -53,16 +53,20 @@ runs:
|
||||
RCPT_ARGS="$RCPT_ARGS --mail-rcpt $(printf '%s' "$addr" | sed 's/^[[:space:]]*//;s/[[:space:]]*$//')"
|
||||
done
|
||||
unset IFS
|
||||
|
||||
# 整封邮件拼好(headers + 空行 + body)从 stdin 给 curl --upload-file -
|
||||
# 避开 "-H + --upload-file -" 组合在 smtps:// 下不生效的 bug(curl 不会把 -H
|
||||
# 头部合并进 DATA 段,结果只发空 body)。v1.0.0 是这么写的,1.0.1 改成全量 stdin。
|
||||
# 同时给出一个明确的 Date 头部,避免 163 反垃圾系统把无 Date 的邮件归类。
|
||||
DATE_HDR=$(date -R)
|
||||
EMAIL=$(printf 'From: %s\nTo: %s\nSubject: %s\nMIME-Version: 1.0\nContent-Type: text/plain; charset=UTF-8\nDate: %s\n\n%s' \
|
||||
"$FROM_ADDR" "$TO_ADDR" "$SUBJECT" "$DATE_HDR" "$BODY")
|
||||
# shellcheck disable=SC2086
|
||||
if ! printf '%s' "$BODY" | curl -fsS --ssl \
|
||||
if ! printf '%s' "$EMAIL" | curl -fsS --ssl \
|
||||
--url "smtps://${SMTP_HOST}:${SMTP_PORT}" \
|
||||
--user "${SMTP_USER}:${SMTP_PASS}" \
|
||||
--mail-from "${FROM_ADDR}" \
|
||||
$RCPT_ARGS \
|
||||
-H "Subject: ${SUBJECT}" \
|
||||
-H "From: ${FROM_ADDR}" \
|
||||
-H "To: ${TO_ADDR}" \
|
||||
-H "Content-Type: text/plain; charset=UTF-8" \
|
||||
--max-time 15 --retry 2 \
|
||||
--upload-file -; then
|
||||
echo "::warning::Email send failed (non-fatal)"
|
||||
|
||||
Reference in New Issue
Block a user