From b103d50e7a80a32f0665bd5bb4e0c38d042d4ef2 Mon Sep 17 00:00:00 2001 From: JACKYMYPERSON <108354972+JACKYMYPERSON@users.noreply.github.com> Date: Tue, 16 Sep 2025 00:29:23 +0800 Subject: [PATCH] Update main.yml --- .github/workflows/main.yml | 28 +++++++++++++++++----------- 1 file changed, 17 insertions(+), 11 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index bac3893..0ca5024 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -21,6 +21,8 @@ jobs: send-email: runs-on: ubuntu-latest steps: + - name: 检出代码仓库 + uses: actions/checkout@v4 # 必须添加,否则无法使用git命令 - name: install email tool run: | sudo apt update -y @@ -33,14 +35,20 @@ jobs: EMAIL_PASS: ${{ secrets.EMAIL_PASS }} TO_EMAIL: 1627832236@qq.com run: | - smtp_url="smtps://${SMTP_SERVER}:${SMTP_PORT}" - smtp_url=$(echo "$smtp_url" | tr -d '[:space:]') # 确保无空白字符 - echo "最终SMTP URL: [$smtp_url]" # 应显示 [smtps://smtp.qq.com:465] + if [ -z "$SMTP_SERVER" ] || [ -z "$SMTP_PORT" ]; then + echo "错误:SMTP_SERVER或SMTP_PORT未设置" + 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') - # 3. 构建邮件内容(简化格式,与本地成功命令的结构匹配) + # 3. 构建邮件内容(现在git命令可用) email_content=$(cat <<-EOF From: ${EMAIL_USER} To: ${TO_EMAIL} @@ -53,13 +61,11 @@ jobs: EOF ) - # 4. 发送邮件(严格匹配本地成功的curl参数) + # 4. 发送邮件(与本地成功命令一致) curl -v \ - --tlsv1.2 \ # 强制TLS 1.2,与本地测试一致 + --tlsv1.2 \ --mail-from "$EMAIL_USER" \ --mail-rcpt "$TO_EMAIL" \ --user "$EMAIL_USER:$EMAIL_PASS" \ - -T <(echo -e "$email_content") \ # 邮件内容位置与本地命令一致 - "$smtp_url" # URL参数放在最后,与本地命令格式一致 - - + -T <(echo -e "$email_content") \ + "$smtp_url"