From 4b0ce8fec8b6b196cef3f84aca6911f9f5990f36 Mon Sep 17 00:00:00 2001 From: JACKYMYPERSON <108354972+JACKYMYPERSON@users.noreply.github.com> Date: Tue, 16 Sep 2025 00:08:05 +0800 Subject: [PATCH] Update main.yml --- .github/workflows/main.yml | 32 +++++++++++++++----------------- 1 file changed, 15 insertions(+), 17 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 875dbc0..b3e1c5d 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -33,38 +33,36 @@ jobs: EMAIL_PASS: ${{ secrets.EMAIL_PASS }} TO_EMAIL: 1627832236@qq.com run: | - # 验证SMTP参数是否正确(调试用,可删除) - echo "SMTP服务器: $SMTP_SERVER" - echo "SMTP端口: $SMTP_PORT" - echo "发件人: $EMAIL_USER" + # 1. 修复URL格式(核心) + smtp_url="smtps://${SMTP_SERVER}:${SMTP_PORT}" + smtp_url=$(echo "$smtp_url" | tr -d '[:space:]') # 强制移除所有空白字符 + echo "最终SMTP URL: [$smtp_url]" # 调试用,确认格式 - # 检查URL格式是否正确(调试用,可删除) - smtp_url="smtps://$SMTP_SERVER:$SMTP_PORT" - echo "SMTP URL: $smtp_url" + # 2. 中文主题编码 + base64_subject=$(echo -n "推送仓库成功" | base64 | tr -d '\n') - # 中文主题Base64编码 - base64_subject=$(echo -n "推送仓库成功" | base64) - - # 构建邮件内容 - email_content=$(cat < - To: $TO_EMAIL - Subject: =?UTF-8?B?$base64_subject?= + # 3. 构建邮件内容 + email_content=$(cat <<-EOF + From: "${EMAIL_USER}" <${EMAIL_USER}> + To: ${TO_EMAIL} + Subject: =?UTF-8?B?${base64_subject}?= Content-Type: text/plain; charset=UTF-8 通知:有新的内容已推送到仓库「toutoukan」的main分支 推送时间: $(date +"%Y-%m-%d %H:%M:%S") + 推送作者: $(git log -1 --pretty=format:'%an') + 提交信息: $(git log -1 --pretty=format:'%s') EOF ) - # 发送邮件(修复URL格式) + # 4. 发送邮件(修复认证和URL) curl -v \ --connect-timeout 10 \ --max-time 20 \ --mail-from "$EMAIL_USER" \ --mail-rcpt "$TO_EMAIL" \ --user "$EMAIL_USER:$EMAIL_PASS" \ - "$smtp_url" \ # 使用预定义的URL变量,避免格式错误 + "$smtp_url" \ -T <(echo -e "$email_content")