将电子邮件签名添加到电子邮件通知脚本

2024-05-01

我正在 Google Apps 脚本上编写一段代码,以便每次在我的网站上发布新公告时发送电子邮件。这是供参考的代码:

var url_of_announcements_page = "https://sites.google.com/announcements"; 
var who_to_email = "emailaccount";

function emailAnnouncements(){
  var page = SitesApp.getPageByUrl(url_of_announcements_page); 
  if(page.getPageType() == SitesApp.PageType.ANNOUNCEMENTS_PAGE){ 

    var announcements = page.getAnnouncements({ start: 0,
                                               max: 10,
                                               includeDrafts: false,
                                               includeDeleted: false});
    announcements.reverse();                                    
    for(var i in announcements) { 
      var ann = announcements[i]; 
      var updated = ann.getLastUpdated().getTime(); 
      if (updated > PropertiesService.getScriptProperties().getProperty("last-update")){ 
        var options = {}; 

        options.htmlBody = Utilities.formatString("<h1><a href='%s'>%s</a></h1>%s", ann.getUrl(), ann.getTitle(), ann.getHtmlContent());

        MailApp.sendEmail(who_to_email, "Announcement - '"+ann.getTitle()+"'", ann.getTextContent()+"\n\n"+ann.getUrl(), options);

        PropertiesService.getScriptProperties().setProperty('last-update',updated);
      }
    }
  }
}

function setup(){
 PropertiesService.getScriptProperties().setProperty('last-update',new Date().getTime());
}  

我想知道是否可以将我的 Gmail 签名添加到代码中。当我将其与脚本一起发送时,我的签名被删除。我是否必须在代码中签名,或者我可以从 gmail 获取签名并自动将其插入到末尾吗?这是电子邮件格式的行:

MailApp.sendEmail(who_to_email, "Announcement - '"+ann.getTitle()+"'", ann.getTextContent()+"\n\n"+ann.getUrl(), options);

Apps 脚本无法访问用户的签名:MailApp 中没有方法,或者GmailApp https://developers.google.com/apps-script/reference/gmail/gmail-app,甚至在邮箱API https://developers.google.com/gmail/api/可通过高级 Google 服务访问。

原则上,您可以使用 GmailApp 获取最近发出的邮件,并在其文本中搜索最后一封邮件之后包含的签名。--在邮件正文中找到。但这需要给予脚本更多的访问权限(与 MailApp 不同,GmailApp 可以访问、转发和删除现有电子邮件)并且容易出错(当文本解析失败时,您可能会在消息中得到令人尴尬的文本片段)。

直接追加即可:

var signature = "\n\n--\nFirstName LastName"; 
// ... 
MailApp.sendEmail(... +signature, options);

(顺便说一句,Gmail 网络界面和 Gmail 移动应用程序通常具有不同的用户签名,因此为脚本生成的消息使用另一个签名似乎并不罕见。)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将电子邮件签名添加到电子邮件通知脚本 的相关文章

随机推荐

  • Sql Server 2005 将列名放在方括号中

    我最近将数据库从 Sql Server 2000 迁移到 Sql Server 2005 在表设计器中 它坚持将方括号放在名为 Content 的列周围 我在 Sql Server 的保留字列表中没有看到 Content 所以我不明白它为什
  • 为什么`.forEach`适用于密集数组但不适用于稀疏数组? [复制]

    这个问题在这里已经有答案了 我试图理解 空 稀疏数组之间的区别 例如new Array 3 和一个等效的 空 密集数组 具有 3 个未定义条目的数组 我可以通过以下两种方式创建一个包含 3 个未定义值的数组 var sparse new A
  • 估计/选择 DBSCAN 的最佳超参数

    我需要根据不同介词的分布找到自然出现的名词类别 如施事 工具 时间 地点等 我尝试使用 k means 聚类 但帮助较少 效果不佳 我正在寻找的类有很多重叠 可能是因为类的非球状形状和 k means 中的随机初始化 我现在正在使用 DBS
  • Flutter Redux 和 Hook。如何像react一样观察useEffect内部变量实例的变化?

    我是 flutter 新手 试图观察像 React Native 这样处于减速器状态的变量 count 我使我的 redux 和 hook 工作完美 屏幕上的变量计数发生变化 但如果我更改操作 则永远不会再次调用 useEffect 仅一次
  • 使用桌面 Appium 应用程序在模拟器上打开并崩溃

    测试环境 用于运行 Appium 的桌面操作系统 版本 版本 1 2 0 beta 3 1 2 0 beta 3 Node js 版本 除非使用 Appium app exe 测试移动平台 版本 ios模拟器 iPhone 6s 10 2
  • Bash 脚本 Mysql 警告:在命令行界面上使用密码可能不安全

    你好 我有一个脚本来对一些 mysql 数据库进行分区 我们正在从 5 5 升级到 5 6 在测试脚本时 我注意到新的 5 6 版本 mysql 返回Warning Using a password on the command line
  • Swift - 检查日期是否在下周/下个月。 ( isDateInNextWeek() isDateInNextMonth() )

    我们在日历中有这些方便的功能 let calendar NSCalendar currentCalendar calendar isDateInToday date calendar isDateInTomorrow date 但我缺少那两
  • 模拟器在 AQMEIOManager 上崩溃

    尝试播放音频时模拟器崩溃 13 22 14 211 App 2965 5603 lt 0xb03e7000 gt Error obj trying to fetch default input device s sample rate 13
  • mailto 的语法

    当使用这样的 mailto 链接时 a href title Subject Link Text a 是否可以设置 FROM 地址 更新 我忘了提及 我有一群忠实的受众 他们都将使用 IE8 和 Outlook 不幸的是 事实并非如此 您只
  • 计算 IOrderedEnumerable 的数量而不消耗它

    我想做的 简短版本 var source new 2 4 6 1 9 OrderBy x gt x int count source Count lt get the number of elements without performin
  • 使用 MVVM 为 WPF 搭建脚手架?

    谁能告诉我是否可以 如果存在某些实用程序 创建考虑到 MVVM 和 WPF 的脚手架 我的想法是我似乎有很多数据访问表单 当然我想自定义它们 但最初我想要一种快速提供表单的方法 即放置在它们上面并绑定到 mvvm 的所有控件 也许我问得很多
  • javascript单线程时onreadystatechange的调用者是谁?

    好吧 我是 javascript 的新手 听说它是单线程的 在我看来 如果您发出异步请求 它应该启动一个自己的线程来控制服务器是否已经响应 这在 JavaScript 中不起作用 我在想是否有一些内置机制可以保存所有侦听器并调用它们 具体取
  • 在github原子编辑器中隐藏隐藏(点)文件

    我对 Github Atom 编辑器非常陌生 它总是显示隐藏文件 例如 git sass在侧窗格中 如何在atom编辑器的侧窗格中隐藏隐藏文件 点文件 编辑 gt 首选项 gt 包 在 已安装的软件包 下面的字段中 输入 树视图 该软件包有
  • 在 Java 中打印 HashMap

    我有一个HashMap private HashMap
  • 复制cordova 2.2.0 .jar

    我需要新的 jar 文件来升级到 cordova 2 2 0 但我在哪里可以找到它呢 我必须生成它吗 如何生成 多谢 您可以从以下位置下载 PhoneGap GitHub 存储库 https github com phonegap phon
  • 如何在java中使用cypher加载CSV文件?

    我是密码新手 我想在java中使用cypher加载csv 我用谷歌搜索并找到了以下作品 LOAD CSV WITH HEADERS FROM http neo4j com docs 2 3 1 csv import movies csv A
  • aws cli 中的 SSL CERTIFICATE_VERIFY_FAILED

    我安装了AWS CLI http docs aws amazon com cli latest userguide installing html install msi on windows在 Windows Server 2007 32
  • 使用 Peewee 追溯创建索引?

    有没有办法用 Peewee 追溯索引 sql 文件的列 即初始规范未建立索引的情况 询问是因为执行所有插入然后建立索引应该更快 而不是相反 有没有办法用 Peewee 追溯索引 sql 文件的列 Yes Pewee s http docs
  • jax-rs ContextResolver 理解

    但我试图了解 jax rs 中 Provider 的用法 但无法理解如何使用 ContextResolver 有人可以用一些基本的例子来解释这一点吗 您将看到它在解析序列化上下文对象时被大量使用 例如一个ObjectMapper用于 JSO
  • 将电子邮件签名添加到电子邮件通知脚本

    我正在 Google Apps 脚本上编写一段代码 以便每次在我的网站上发布新公告时发送电子邮件 这是供参考的代码 var url of announcements page https sites google com announcem