如何在Google脚本生成的HTML邮件中用变量作为超链接URL
Fixing Dynamic Hyperlink Replacement in Google Apps Script HTML Email Template
我来帮你搞定这个动态超链接的问题!你现在的问题主要出在HTML模板的语法错误,以及提前拼接<a>标签的方式不够灵活。咱们一步步来修正:
问题分析
- 你在HTML里写了
+<?= EmailVar13 ?>+,这两个加号是多余的——Google Apps Script的HTML模板语法只需要直接用<?= 变量名 ?>输出内容,不需要额外的加号包裹。 - 提前把
<a href="...">拼接到变量里虽然能工作,但会让HTML结构变得混乱,不利于后续维护。更清晰的做法是把纯URL作为变量传入,在HTML模板里构建完整的链接标签。
修正后的代码
1. 修改Google Apps Script部分
把原来拼接<a>标签的代码去掉,直接传递纯URL变量:
var CO_PP = COSheet.getRange(2,11).getValue(); var EmailBody = HtmlService.createTemplateFromFile(template); EmailBody.EmailVar1 = CO_Name; EmailBody.EmailVar2 = CO_Email; EmailBody.PayPalUrl = CO_PP; // 直接传递纯URL,不要提前拼接a标签 var MyHtmlBody = EmailBody.evaluate().getContent(); var EmailSubject = "Credits Order SUCCES .:: CADsherpa Weblink ::."; MailApp.sendEmail(CO_Email, EmailSubject, "Your emailreader does not support HTML." + " Try opening this message with a different email reader or take contact with info@cadsherpa.com", { htmlBody: MyHtmlBody, attachments: PDF_ToSend });
2. 修改HTML模板部分
把原来的错误代码改成完整的<a>标签结构,用模板变量填充href属性:
<!-- button start --> <div> <p> </p> <table align="left" border="0" cellpadding="1" cellspacing="1" style="height:10px;width:185px;"> <tbody> <tr> <td style="white-space: nowrap; text-align: center; vertical-align: middle; background-color: rgb(51, 102, 255);"> <h3> <a href="<?= PayPalUrl ?>"> <span style="font-size:18px;"> <strong><em><span style="font-family:arial,helvetica,sans-serif;"> <span style="color:#FFFFFF;">Pay with PayPal </span></span></em></strong> </span> </a> </h3> </td> </tr> </tbody> </table> <p> </p> </div> <!-- button end -->
额外提示
- 确保
CO_PP获取到的是有效的完整URL(比如以http://或https://开头),否则链接可能无法正常跳转。 - Google Apps Script的HTML模板会自动对变量内容进行HTML转义,所以如果URL里包含特殊字符(比如
&),会被自动转换成安全的HTML实体,不用担心链接失效。
内容的提问来源于stack exchange,提问作者J Steurs
相关产品推荐
相关产品推荐

