如何通过chrome扩展自动设置gmail过滤器?

2024-02-16

我想将以下用例实现为 Chrome 扩展:

  • 用户访问 Gmail
  • 扩展程序检查当前电子邮件正文中的关键字
  • 如果存在关键字,则添加并保存gmail过滤器(添加标签,存档,此处的详细信息并不重要)

第一部分听起来更容易:有谷歌邮箱API https://developers.google.com/gmail/api/一起工作,甚至gmail.js https://github.com/KartikTalwar/gmail.js/tree/master项目应该会让事情变得更容易。

添加过滤器似乎要困难得多。有电子邮件设置 API 正是我想要的 https://developers.google.com/admin-sdk/email-settings/#creating_a_filter但我相当确定它只能由企业帐户使用(自定义电子邮件域,不适用于 gmail.com)。我希望解决方案更加通用。

我想到的一件事是使用浏览器自动化 - 看到触发关键字后,脚本会自动单击“添加过滤器”链接,等待 AJAX,设置过滤器参数并确认。

模拟用户活动的示例如下这个答案 https://stackoverflow.com/questions/3615149/how-to-add-automatic-click-feature-in-chrome-extension

这可能发生在弹出窗口后面的 Gmail 页面(“请稍候,调整过滤器”)或后台选项卡中,以防止其干扰用户的流程。不过,这对我来说似乎是一个丑陋的解决方法。

我是否缺少更直接或更好的方法?


经过更多的实验和恢复旧的 github 项目后,我发现只需从当前会话向 gmail 发出特定的 POST 消息即可为登录用户设置过滤器。

我不完全理解此请求中使用的参数(如果有人有更好的信息,请分享),但我找到了一个示例代码 https://github.com/GrexIt/Gmail-Filters-Js-api这很有帮助。

gmail.js 社区广泛讨论的第二个问题是 Gmail 安全策略将阻止您注入自己的脚本。这可以通过中所示的方法绕过这个样板项目 https://github.com/KartikTalwar/gmail-chrome-extension-boilerplate

我编译了这些解决方案来解决我的特定用例。这是一个示例项目 https://github.com/zencodism/gmail-chrome-extension-autofilter使用我的解决方案,它应该开箱即用 - 如有疑问,请参阅自述文件。

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

如何通过chrome扩展自动设置gmail过滤器? 的相关文章

  • CSS 注入在 content_scripts 中使用声明失败,但在通过注入的 JavaScript 加载时有效

    我注意到将 CSS 注入第三方页面的预期方式似乎无法正常工作 相关的manifest json部分 content scripts matches youtube com watch v css css youTubeInject css
  • Chrome 扩展程序编程脚本注入错误

    跟进一个上一篇文章 https stackoverflow com questions 58951909 programmatic method to let the user modify the manifest json conten
  • 如何防止在 Chrome 扩展程序中放大弹出窗口

    我刚刚注意到 如果我在选项卡中放大网页 通过执行 Ctrl Plus 然后打开弹出窗口对于我的 Chrome 扩展 它也得到了扩展 不幸的是 这使得它显示垂直滚动条 在更大的范围内 甚至显示水平滚动条 我发现其他扩展程序仅以 100 缩放显
  • 在页面显示到屏幕之前删除 DOM 元素(在 Chrome 扩展中)

    我正在尝试创建一个扩展 该扩展将在页面显示到屏幕上之前删除某些页面元素 按 id 或类 我尝试在文档上使用事件侦听器 以 DOMContentLoaded 作为事件 但 javascript 似乎在页面显示给用户后执行 然后删除它 所以它不
  • oauth2client.clientsecrets.InvalidClientSecretsError:客户端类型“web”中缺少属性“redirect_uris”

    我正在尝试从 Python 脚本向自己发送 Gmail 并且有以下曾经有效的代码 usr bin env python import base64 from email mime audio import MIMEAudio from em
  • 在 Chrome 扩展程序中访问 Chrome 设置

    我正在寻找开发一个 chrome 扩展程序 可以访问 wrench gt 选项 gt 引擎盖下的内容设置 那可能吗 我当时正在看API page http code google com chrome extensions api inde
  • 使用 page_action 时不出现弹出窗口

    我是 Google Chrome 扩展开发的新手 我有以下两个疑问 我使用时没有出现弹出窗口page action在manifest json中 但在我使用时出现browser action 我想知道为什么 还是我做错了 该图标也显示为非活
  • 使用 Chrome TTS 的 SSML

    我试图通过强调等方式让 TTS 句子更加清晰 我正在使用Chrome TTS API http developer chrome com extensions tts html 这表明它接受SSML 格式的文档 http www w3 or
  • 获取邮件附件列表,无需下载整个邮件

    我想要一种方法来获取消息的附件列表 而不必下载整个消息 使用 Users messages get 我们可以设置要返回的字段 但我们只能选择 Payload 它将返回消息的整个有效负载 https developers google com
  • Chrome 扩展程序可在点击时复制图像 URL

    我是制作 Chrome 扩展的新手 并且已经完成了简单的教程 但我无法找到我需要的东西 我希望扩展程序允许用户在网页上选择图像 然后将该图像的 URL 复制到扩展程序中 谁能帮我吗 我确信如果我看到一个示例 我会更好地掌握扩展程序如何与页面
  • Javascript:自动点击按钮?

    我正在学习如何编写 chrome 扩展 而且我对 javascript 还很陌生 这是一些 html div class button data a class button1 whiteColor href http link1 com
  • 使用python服务帐户管理gmail签名

    我想编辑 Google Apps 域中的用户签名 我计划使用服务帐户 服务帐户被委托给整个域 我使用 gmail API 来发送和检索电子邮件 但使用不同的 api 修改签名 根据https developers google com ad
  • 如何在 OS X 版 Chrome 上手动安装扩展程序?

    我已经创建了一个 chrome 扩展 我想将其手动添加到 mac osx 10 7 和 10 8 上的 chrome 我尝试执行以下步骤 在以下 url 下添加扩展文件夹 用户 talmutzafi 库 应用程序支持 Google Chro
  • 在 Chrome 扩展中创建隐藏的 iframe

    是否可以在 google chrome 扩展中的 background html 页面上创建一个 iframe 并让它向网站发出请求 我不确定该扩展程序到底是如何工作的 chrome 会自动忽略所有显示标签还是会以不可见的方式运行它 它会正
  • 如何更改 Firefox 插件上的脚本位置?

    制作 Firefox 插件的最简单方法是什么 它重复了这个 chrome 功能 chrome webRequest onBeforeRequest addListener function info if info url indexOf
  • chrome扩展中的js代码可以检测到它是作为内容脚本执行的吗?

    我有一个谷歌浏览器扩展 它在内容脚本和后台进程 弹出窗口之间共享一些代码 这段代码是否有一些简单直接的方法来检查它是否作为内容脚本执行 消息传递行为不同 我可以在清单中包含额外的 标记 javascript 或者调用内容脚本中不可用的某些
  • DOM 解析器 Chrome 扩展内存泄漏

    问题 我开发了一个扩展程序 可以拦截 Web 请求 获取 Web 请求来源的 HTML 并对其进行处理 我使用 DOMParser 来解析 HTML 并且意识到 DOMParser 正在导致大量内存泄漏问题 最终导致 chrome 扩展崩溃
  • 如何保护 Chrome 扩展

    Chrome 扩展程序被打包为 zip 存档 设置完成后 它将安装在文件夹中 用户可以访问它 他还可以重写扩展 甚至克隆到新的扩展 如何保护扩展免受用户修改和克隆 我发现了 dll 文件的可能性 可以编译 但它不是很好 如果您有一些专有代码
  • Chrome 扩展程序在“正在发布”中停止

    我已经上传成功了Test 仅暴露给测试者帐户 生产使用我的开发者帐户的 Google Chrome 扩展程序版本 在尝试将我们的 Chrome 扩展程序迁移到新创建的 Google 群组 以便能够协作发布不同版本等 后 问题出现了 现在 我
  • 为什么 gmail API 以纯文本形式发送 html 电子邮件?

    我正在尝试使用 gmail API 发送 html 电子邮件 但由于某些原因 它会随机以纯文本 文本形式发送电子邮件 谷歌似乎改变了我设置的内容类型标头 这有什么理由吗 电子邮件内容始终完全相同 正如我测试的那样 API 仍处于实验阶段吗

随机推荐

  • shiny,DT,styleColorBar 正值和负值的颜色不同?

    我已阅读 DT pdf 文档并进行了搜索 但 DT 包似乎不支持不同的颜色 我怎样才能达到下面图片链接所示的效果 谢谢 示例 正值和负值使用不同的颜色 https asymmetryobservations files wordpress
  • 将 copts/defines 传播到目标的所有依赖项

    我有一个项目 在一个相当复杂的构建系统中的单个工作空间中涉及多个构建文件 简而言之 我的目标 对于某些特定目标 我希望使用一组额外的属性来构建其所有递归依赖项 copts defines 与以任 何其他方式构建这些依赖项目标时相比 我还没有
  • 在 BIN 文件夹中找不到 ApacheJMeterTemporaryRootCA.crt

    我无法在 bin 文件夹中看到 ApacheJMeterTemporaryRootCA crt 文件 我正在运行 jmeter 5 2 1 我需要对此进行排序 以便能够将认证添加到对服务器的 API 调用中 请提供任何帮助或为我指明正确的方
  • 在 C# 中存储永远不会改变的静态数据的最佳方法是什么

    我有一个类将数据存储在 asp net c 应用程序中 并且永远不会改变 我真的不想将这些数据放入数据库中 我希望它保留在应用程序中 这是我在应用程序中存储数据的方法 public class PostVoteTypeFunctions p
  • 从html中提取标题标签

    我想从 html 字符串中提取标题标签的内容 我已经进行了一些搜索 但到目前为止我无法在 VB C 或 PHP 中找到此类代码 此外 这应该适用于大写和小写标签 例如应该与两者一起使用和 TITLE gt 谢谢 您可以为此使用正则表达式 但
  • 如何在 Haskell 中进行嵌套“循环”

    我正在查看一些 JAVA 代码 我想知道如何将其转换为 Haskell IntStream range 0 cookedWords length parallel forEach int i gt int A cookedWords i f
  • 在视图中播放框架配置值

    我如何访问该值application name from conf application conf在一个视图中 您可以使用以下代码示例来执行此操作 play configuration application name 另请参阅http
  • 如何使用 postData 过滤器刷新 jqGrid 搜索对话框

    我正在使用 jqGrid 到目前为止一切都运行良好 但现在我正在努力允许用户能够保存他们的搜索 以便他们以后可以检索它们和 或将它们应用到不同的网格 事实证明 节省实际上是最容易的部分 我可以根据指定的 postData 过滤器获取网格进行
  • Wix 卸载不删除文件,始终假定程序文件\myApp 文件夹

    我在使用 Wix 安装程序时遇到问题 并且不知道具体缺少什么 我已启用该对话框以允许用户选择自己的安装文件夹而不是默认的安装文件夹 如果我运行安装并保留默认的 Program Files MyApp 则应用程序安装没有问题 如果我随后卸载
  • 如何解决 Labview 加载冲突

    我正在 Labview 中开发一个数据采集程序 该程序使用多个平移台 相机 高速数字化仪和其他仪器 我正在一台计算机上开发该应用程序 并将其部署到另一台计算机上 开发计算机具有labview 2013 而要部署应用程序的计算机当前具有Lab
  • 在 Backbone.js 应用程序中设置全局 REST 根 url

    在backbone js中 您必须手动设置每个模型的rooturl 有没有一种方法可以将其设置在一个位置一次并且所有模型都会使用它 For eg api site com将是 REST 服务 但出于测试目的 它可能位于localhost 1
  • Apache NiFi:使用映射值将列添加到 csv

    使用 GetFile 处理器将 csv 导入 NiFi 工作流程 我有一列由 id 组成 每个id代表一个特定的字符串 大约有3个id 例如 如果我的 csv 包含 name age id John 10 Y Jake 55 N Finn
  • 我如何在 php 中获取上个月的名称[重复]

    这个问题在这里已经有答案了 可能的重复 php 中给定月份的下个月和上个月 https stackoverflow com questions 9172035 next and previous month from a given mon
  • EventAggregator 仅适用于 MVVM 中的 ViewModel?

    我了解到在 MVVM 设计中实现的事件聚合器模式可以帮助解耦 ViewModel 之间的通信 我认为事件聚合器确实是个好主意 但转念一想 事件聚合器仅由 ViewModel 使用吗 模型可以在事件聚合器中发布和订阅事件吗 通过这种方式 Vi
  • 创建一个函数以从 Oracle 数据库中获取数据(按 ID 排列的数组)

    我正在尝试创建一个函数 它只允许我向其中传递 SQL 语句 并且它将根据我传递给它的唯一 ID 生成一个数组 function oracleGetGata query id id global conn sql OCI Parse conn
  • appspot.com 网址显示在 Google 搜索结果中,而不是自定义域名

    我已经设置了http www footballverdict com http www footballverdict com它托管在 Google App Engine 上 一切正常 您可以毫无问题地访问自定义域 由于某种原因 当我在 G
  • 在 Swift 中,如何在 Voiceover 说话时停止文本转语音,反之亦然?

    现在 我的应用程序实现了AVSpeechSynthesizer读出每个屏幕的说明 该应用程序还会考虑何时启用 Voiceover 辅助功能 我现在面临的问题是文本转语音功能与画外音功能重叠 是否有解决方案可以检测到当用户导航到屏幕上的另一个
  • 嵌入式 Jetty:在安全 https 服务器中,ContextHandler 重定向到 http URI

    我正在使用嵌入式 Jetty 构建沙箱 RESTful API 我的概念验证设计 一个简单的嵌入式 jetty 服务器 1 接受 SSL 端口上的连接 2 使用 ContextHandlerCollection 根据 URI 前缀调用正确的
  • 3d.io 的航点动画问题

    相机动画始终从初始相机姿势开始 我们不希望出现这种行为 您可以通过以下方式检查此问题 https app 3d io default setup https app 3d io default setup 这段代码以前有效 我们没有改变任何
  • 如何通过chrome扩展自动设置gmail过滤器?

    我想将以下用例实现为 Chrome 扩展 用户访问 Gmail 扩展程序检查当前电子邮件正文中的关键字 如果存在关键字 则添加并保存gmail过滤器 添加标签 存档 此处的详细信息并不重要 第一部分听起来更容易 有谷歌邮箱API https