【问题标题】:Using a variable in the body of a HTML email as URL in a hyperlink使用 HTML 电子邮件正文中的变量作为超链接中的 URL
【发布时间】:2020-04-12 03:45:24
【问题描述】:

我有一个从电子表格发送 HTML 电子邮件的 Google 脚本。 电子表格中的一个单元格包含一个可更改的 URL,因为它由其他单元格的值组成。 在我的 GS 中,我将此 URL 读入了一个 var。 现在我想在呈现电子邮件的 HTML 代码中使用此 var,以便电子邮件接收者可以单击打开此自定义 URL 的链接。

我找不到用包含我的自定义 URL 的变量替换固定 URL 的解决方案 请检查显示“”的 HTML 代码 那是我放置 var 的地方,但这样做显然是错误的。

**** Google script*****

var CO_PP = COSheet.getRange(2,11).getValue() ; 
var CO_PP_href =  ("<a href=\"" + CO_PP + "\">")  ;  //  use a backslash \ to escape the quotation marks. 

var EmailBody =  HtmlService.createTemplateFromFile(template); 
           EmailBody.EmailVar1 = CO_Name;
           EmailBody.EmailVar2 = CO_Email;
           EmailBody.EmailVar13 = CO_PP_href;


 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 });






*******HTML*******

<!-- button start -->  
    <div>
    <p>&nbsp;</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> +<?= EmailVar13 ?>+ <span style="font-size:18px;">  <!-- PROBLEM ON THIS LINE -->  
            <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>&nbsp;</p>

    </div>                   
 <!-- button end -->   

【问题讨论】:

    标签: html url google-apps-script hyperlink


    【解决方案1】:

    在 GAS 中使用 HTML 模板时,分配给模板的变量将被转义。这意味着在您的情况下,如果 CO_PP_href 设置为表达式 "&lt;a href=\"" + CO_PP + "\"&gt;" 实际标签将不会放置在 HTML 中,而是转义版本 (&amp;lt;a href=&amp;#34;...&amp;#34;&amp;gt;) 以便它可以被视为可打印的“文本" 在您的页面中。

    根据您的需要,我提出了不同的解决方案。可以先在html模板内部创建&lt;a&gt;标签,评估模板时只设置href属性。解决方案如下所示:

    HTML

    <!-- button start -->  
    <div>
    <p>&nbsp;</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="<?= EmailVar13 ?>"> <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>&nbsp;</p>
    
    </div>                   
    <!-- button end -->   
    

    气体

    var CO_PP = COSheet.getRange(2,11).getValue() ; 
    
    var EmailBody = HtmlService.createTemplateFromFile(template); 
    EmailBody.EmailVar1 = CO_Name;
    EmailBody.EmailVar2 = CO_Email;
    EmailBody.EmailVar13 = CO_PP;
    
    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 });
    

    【讨论】:

    • 现在完美运行,查尔斯!我一直非常非常接近,我现在意识到 ;-)
    • 或者只是 force-print 使用 &lt;?!= ... ?&gt;,它不会转义 HTML。
    • 感谢@Diego 的贡献,太棒了。
    猜你喜欢
    • 1970-01-01
    • 2015-03-12
    • 2023-03-03
    • 1970-01-01
    • 2018-04-15
    • 1970-01-01
    • 1970-01-01
    • 2011-09-06
    • 2013-10-18
    相关资源
    最近更新 更多