为了账号安全,请及时绑定邮箱和手机立即绑定

使用 Google Apps 脚本时使用查询参数保护 URL

使用 Google Apps 脚本时使用查询参数保护 URL

冉冉说 2023-02-17 10:24:14
我真的很难发送一封包含查询参数的 URL 的自动电子邮件(使用 Google Apps 脚本)。预期行为Google Apps 脚本(特别是Gmail服务)发送电子邮件,电子邮件正文的一部分包含带有查询参数的 URL。URL 看起来像这样: http://my.app/products?id =Bz9n7PJLg8hufTj11gMF观察到的行为该Gmail服务似乎正在从我的 URL 中删除=。所以,电子邮件的正文最终看起来像这样: ... http://my.app/products?idBz9n7PJLg8hufTj11gMF ...显然,该链接将不起作用。我在这里检查了其他关于 SO 的问题,并且尝试使用GAS Utilities 服务中的基本编码工具,以及使用encodeURI()JavaScript 方法。到目前为止没有运气。邮件发送代码  //////// GENERATING MESSAGE FROM ID ////////////    // Gets message from ID    var id = Gmail.Users.Drafts.get('me', 'r-1006091711303067868').message.id    var message = GmailApp.getMessageById(id)    var template = message.getRawContent()        // Replaces template variables with custom ones for the user using RegExes    let listingUrl = 'http://my.app/products?id=xyz'    let creatorEmail = 'hello@gmail.com'    let creatorUsername = 'Sam'    template = template.replace(/templates@my.app/g, creatorEmail)    template = template.replace(/firstName/g, creatorUsername)    //** Below is the string that gets modified and broken **//    template = template.replace(/listingUrl/g, listingUrl)        // Creates the new message    var message = Gmail.newMessage()    var encodedMsg = Utilities.base64EncodeWebSafe(template)    message.raw = encodedMsg        // Sends it    Gmail.Users.Messages.send(message, "me", Utilities.newBlob(template, "message/rfc822"))
查看完整描述

1 回答

?
三国纷争

TA贡献1804条经验 获得超7个赞

基于正则表达式的解决方案

在TanaikeRafa Guillermo的帮助下,最终为我工作的解决方案是用这样的 小东西=代替:=.replace()listingUrl = listingUrl.replace(/=/, '=')


查看完整回答
反对 回复 2023-02-17
  • 1 回答
  • 0 关注
  • 84 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信