【问题标题】:Clickable link in mailapp scriptmailapp 脚本中的可点击链接
【发布时间】:2017-08-30 15:47:57
【问题描述】:

我正在尝试使用 Mailapp.SendEmail 将可点击的链接放入电子邮件中。根据我读过的其他一些答案,我已将链接分成几部分以避免串联混淆。但是,html 仍然在电子邮件中显示为文本。谁能告诉我我做错了什么?

function myFunction() {
  var spreadsheet = SpreadsheetApp.getActive()
  var responses = spreadsheet.getSheets()[0]
  var lastContact = responses.getRange(1,13).getValue();
  var tag1 = '<a href="'
  var link = "docs.google.com/forms/d/e/1FAIpQLSfODcXSXa_xt1E78MM9uekSlOoCXwdy-EvVryY4RP0P0fZ_A/viewform"
  var tag2 = '"> our registration page  </a>';  
  var full = tag1+link+tag2

  Logger.log(tag1+link+tag2)
  if(responses.getLastRow()-1 > lastContact){
    for(var i = lastContact+1; i<=responses.getLastRow()-1; i++){
       MailApp.sendEmail(responses.getRange(i,4).getValue(), "Registration Confirmed: South and Southeast Queens Rising", "Hello, "+ responses.getRange(i,2).getValue() +" "+responses.getRange(i,3).getValue() + ",\n\n" 
                     + "Thank you for registering for our event  We will be sending a detailed program for this exciting event very shortly. \n\n"
                     + "We encourage you to attend the event with colleagues.  To do so, please return to " + full + " to list employees, associates, and partners who will join you on September 12, 2017."
                     + "We look forward to meeting you soon!  \n\n"
                     + "Thank you, \n"
                     + "Signature"
                    )
}
responses.getRange(1,13).setValue(responses.getLastRow()-1)

} }

【问题讨论】:

    标签: html google-apps-script html-email


    【解决方案1】:

    MailAppsendEmail() 方法中,您可以指定允许html 的设备使用htmlBody 选项/高级参数中的html 内容。

    function myFunction() {
      ...
      var html_link = "<a href='docs.google.com/forms/d/e/1FAIpQLSfODcXSXa_xt1E78MM9uekSlOoCXwdy-EvVryY4RP0P0fZ_A/viewform'> our registration page  </a>";
    
      var html_body = "Hello, "+ responses.getRange(i,2).getValue() +" "+responses.getRange(i,3).getValue() + ",<br><br>" 
                     + "Thank you for registering for our event  We will be sending a detailed program for this exciting event very shortly. <br><br>"
                     + "We encourage you to attend the event with colleagues.  To do so, please return to " + html_link + " to list employees, associates, and partners who will join you on September 12, 2017."
                     + "We look forward to meeting you soon!  <br><br>"
                     + "Thank you, <br>"
                     + "Signature"
      ...
    
      MailApp.sendEmail({
        to: responses.getRange(i,4).getValue(),
        subject: "Registration Confirmed: South and Southeast Queens Rising",
        body: "Can add a Plain Text version of the email body here for email apps that dont do html",
        htmlBody: html_body
      });
    
      ...
    }
    

    【讨论】:

    • 这似乎适用于 Outlook,但不适用于仍在显示 html 文本的 gmail。我知道 gmail 做 html,我很犹豫是否有纯文本版本,因为链接相当重要。
    • 更新了将链接作为一个字符串的代码,并在 Gmail 中进行了测试。这应该可行 - 不知道为什么 string 链接分为 3 个部分。这是必需的吗?
    • responses.getRange(i,2).getValue() 包含什么?它有 HTML 标签吗?如果是这样,我相信他们需要被包裹在 HtmlService createHtmlOutput() - 这不是 100%
    • 成功了!非常感谢!回答您的问题:标签被分解是因为我读到这可能对这个线程有帮助 -stackoverflow.com/questions/40465808/…responses.getRange(i,2).getValue() 包含每个受访者的电子邮件地址,这不会导致问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-11
    • 2017-10-11
    • 2021-12-24
    • 2023-03-30
    相关资源
    最近更新 更多