Google 邮件

Google 邮件集成允许您将您的 Google 邮件 连接到 Home Assistant。该集成添加了一个操作,允许您在度假时设置电子邮件自动回复。还添加了一个 notify 操作,允许您以纯文本草拟或发送电子邮件。

先决条件

您需要配置开发者凭据,以允许 Home Assistant 访问您的 Google 账号。 这些凭据与 NestGoogle SheetsYouTube 所用的凭据相同。 这些与之前推荐的 Google Calendar设备授权 凭据不同。

情景 1:您已经拥有凭据

在这种情况下,您需要做的就是启用 API:

  1. 转到 Google 开发者控制台 Gmail API
  2. 确认项目并 启用 API。
  3. 按照 配置 部分中描述的步骤继续进行。

情景 2:您尚未设置凭据

在这种情况下,您需要先生成一个客户端密钥:

生成客户端 ID 和客户端密钥

本节说明如何在 Google 开发者控制台 上生成客户端 ID 和客户端密钥。

  1. 首先,转到 Google 开发者控制台以启用 Gmail API
  2. 选择 创建项目,输入项目名称并选择 创建
  3. 启用 Gmail API。
  4. 导航到 API 和服务(左侧边栏) > 凭据
  5. 在左侧边栏,选择 OAuth 同意屏幕
    • 选择 外部创建
    • 应用名称(请求同意的应用程序名称)设置为您想要的任何名称,例如 Home Assistant
  6. 您需要选择一个 支持电子邮件
    • 从下拉菜单中选择您的电子邮件地址。
  7. 开发者联系信息 下,输入您的电子邮件地址(可以与上面的相同)。
  8. 向下滚动并选择 保存并继续
    • 您不需要在这里填写其他任何内容。添加此页面的其他信息(如应用标志)可能会触发 Google 的额外审核过程,并导致设置延迟几天。
  9. 然后,您将自动进入 范围 页面。
    • 您不需要在此处添加任何范围。选择 保存并继续 以移至 测试用户 页面。
    • 您不需要在 测试用户 页面添加任何内容。选择 保存并继续,这将带您到 摘要 页面。
    • 选择 返回仪表板
  10. 重新选择 OAuth 同意屏幕 并在 发布状态 下选择 发布应用
    • 否则您的凭据将每7天到期。
  11. 确保 发布状态 设置为 在生产中
  12. 在左侧边栏中,选择 凭据,然后选择 创建凭据(在屏幕顶部),再选择 OAuth 客户端 ID
  13. 应用程序类型 设置为 Web 应用程序,并给这个凭据集命名(例如 “Home Assistant Credentials”)。
  14. https://my.home-assistant.io/redirect/oauth 添加到 授权重定向 URI 中,然后选择 创建
    • 这不是占位符。它是必须使用的 URI。
  15. 然后,您将看到一个弹出窗口,显示 OAuth 客户端已创建,显示 您的客户端 ID您的客户端密钥
    • 请记下这些(例如,将其复制并粘贴到文本编辑器中),因为您稍后需要它们。
    • 记下这些字符串后,选择 确定
    • 如果您在任何时候需要再次查找这些凭据,请导航到 API 和服务 > 凭据,您将在 OAuth 2.0 客户端 ID 下看到 Home Assistant Credentials(或您在上一步中命名的任何名称)。
    • 要查看 客户端 ID客户端密钥,请选择铅笔图标。这将带您进入这些凭据的设置页面,信息将在页面右侧显示。
  16. 恭喜您!您现在是客户端密钥的保管者。将其保存在您的宝藏箱中。在大多数情况下,您的新凭据将在几分钟内激活。然而,Google 表示在某些情况下激活可能需要多达五小时。

配置

要将 Google 邮件 服务 添加到您的 Home Assistant 实例中,请使用此 My 按钮:

手动配置步骤

如果上述 My 按钮不起作用,您也可以手动执行以下步骤:

集成设置将接下来给您提供进入 应用凭证(OAuth 客户端 ID 和客户端密钥)的说明,并授权 Home Assistant 连接到 Google 邮件。

OAuth 和设备授权步骤
  1. 继续执行选择您想要授权的帐户的步骤。

  2. 注意:您可能会收到一条消息,告知您该应用尚未经过验证,您需要确认才能继续。

  3. 现在您可以看到您授权 Home Assistant 访问的详细信息,底部有两个选项。选择 继续

  4. 页面现在将显示 将账户链接到 Home Assistant 吗?,请注意 您的实例 URL。如果不正确,请参考 我的 Home Assistant。如果一切正常,请选择 链接账户

  5. 您可以关闭窗口,然后返回 Home Assistant,在那里您应该会看到来自 Home Assistant 的 成功! 消息。

故障排除

如果您在凭据方面遇到错误,可以在 应用程序凭据 用户界面中删除它们。

操作 google_mail.set_vacation

您可以使用 google_mail.set_vacation 操作来设置度假选项。

创建事件操作详细信息
数据属性 可选 描述 示例
enabled 关闭此选项以结束度假回复。 True
title 邮件的主题。 假期
message 邮件的正文。 我正在度假。
plain_text 选择以纯文本或 HTML 发送消息。 True
restrict_contacts 限制自动回复只发送给联系人。 True
restrict_domain 限制自动回复仅发送给特定域。此选项仅适用于 GSuite 账户。 False
start 假期的第一天。 11-20-2022
end 假期的最后一天。 11-26-2022

添加的 notify 服务将以您在同意屏幕上选择的电子邮件地址命名。例如,名为 “example@gmail.com” 的电子邮件地址将显示为 notify.example_gmail_com

Google 邮件通知操作数据

以下属性可以放置在操作的 data 键中,以扩展功能:

属性 可选 描述
cc 抄送的收件人列表。
bcc 密送的收件人列表。
from 默认是当前经过身份验证的用户。通常仅适用于 GSuite 账户,在这种情况下,用户对共享邮箱具有代表访问权限。
send 默认值为 true。将此设置为 false 以创建草稿。在这种情况下,收件人不是必需的。

示例

这是发送电子邮件的完整服务调用:

action: notify.example_gmail_com
data:
  message: "测试"
  title: "测试邮件"
  target:
    - "example2@gmail.com"
  data:
    cc:
      - "example3@gmail.com"
    bcc:
      - "example4@gmail.com"
    from: "example@gmail.com"

视频教程

本视频教程解释了如何在 Home Assistant 中设置 Gmail,以及如何创建仪表板和自动化来发送电子邮件并切换您的外出通知。