Update main.yml
This commit is contained in:
28
.github/workflows/main.yml
vendored
28
.github/workflows/main.yml
vendored
@@ -21,6 +21,8 @@ jobs:
|
|||||||
send-email:
|
send-email:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
|
- name: 检出代码仓库
|
||||||
|
uses: actions/checkout@v4 # 必须添加,否则无法使用git命令
|
||||||
- name: install email tool
|
- name: install email tool
|
||||||
run: |
|
run: |
|
||||||
sudo apt update -y
|
sudo apt update -y
|
||||||
@@ -33,14 +35,20 @@ jobs:
|
|||||||
EMAIL_PASS: ${{ secrets.EMAIL_PASS }}
|
EMAIL_PASS: ${{ secrets.EMAIL_PASS }}
|
||||||
TO_EMAIL: 1627832236@qq.com
|
TO_EMAIL: 1627832236@qq.com
|
||||||
run: |
|
run: |
|
||||||
smtp_url="smtps://${SMTP_SERVER}:${SMTP_PORT}"
|
if [ -z "$SMTP_SERVER" ] || [ -z "$SMTP_PORT" ]; then
|
||||||
smtp_url=$(echo "$smtp_url" | tr -d '[:space:]') # 确保无空白字符
|
echo "错误:SMTP_SERVER或SMTP_PORT未设置"
|
||||||
echo "最终SMTP URL: [$smtp_url]" # 应显示 [smtps://smtp.qq.com:465]
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
# 2. 中文主题编码(保持兼容)
|
# 1. 修复URL格式(强制处理)
|
||||||
|
smtp_url="smtps://${SMTP_SERVER}:${SMTP_PORT}"
|
||||||
|
smtp_url=$(echo "$smtp_url" | tr -d '[:space:]' | sed 's/[^a-zA-Z0-9_.:\/-]//g') # 移除所有非法字符
|
||||||
|
echo "最终SMTP URL: [$smtp_url]" # 必须显示为[smtps://smtp.qq.com:465]
|
||||||
|
|
||||||
|
# 2. 中文主题编码
|
||||||
base64_subject=$(echo -n "推送仓库成功" | base64 | tr -d '\n')
|
base64_subject=$(echo -n "推送仓库成功" | base64 | tr -d '\n')
|
||||||
|
|
||||||
# 3. 构建邮件内容(简化格式,与本地成功命令的结构匹配)
|
# 3. 构建邮件内容(现在git命令可用)
|
||||||
email_content=$(cat <<-EOF
|
email_content=$(cat <<-EOF
|
||||||
From: ${EMAIL_USER}
|
From: ${EMAIL_USER}
|
||||||
To: ${TO_EMAIL}
|
To: ${TO_EMAIL}
|
||||||
@@ -53,13 +61,11 @@ jobs:
|
|||||||
EOF
|
EOF
|
||||||
)
|
)
|
||||||
|
|
||||||
# 4. 发送邮件(严格匹配本地成功的curl参数)
|
# 4. 发送邮件(与本地成功命令一致)
|
||||||
curl -v \
|
curl -v \
|
||||||
--tlsv1.2 \ # 强制TLS 1.2,与本地测试一致
|
--tlsv1.2 \
|
||||||
--mail-from "$EMAIL_USER" \
|
--mail-from "$EMAIL_USER" \
|
||||||
--mail-rcpt "$TO_EMAIL" \
|
--mail-rcpt "$TO_EMAIL" \
|
||||||
--user "$EMAIL_USER:$EMAIL_PASS" \
|
--user "$EMAIL_USER:$EMAIL_PASS" \
|
||||||
-T <(echo -e "$email_content") \ # 邮件内容位置与本地命令一致
|
-T <(echo -e "$email_content") \
|
||||||
"$smtp_url" # URL参数放在最后,与本地命令格式一致
|
"$smtp_url"
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user