> ## Documentation Index
> Fetch the complete documentation index at: https://langchain-zh.cn/llms.txt
> Use this file to discover all available pages before exploring further.

# Gmail 工具包集成

> 使用 LangChain Python 与 Gmail 工具包集成。

这将帮助您开始使用 Gmail [工具包](/oss/python/integrations/tools/google_gmail)。此工具包与 Gmail API 交互，用于读取邮件、起草和发送邮件等。有关所有 `GmailToolkit` 功能和配置的详细文档，请前往 [API 参考](https://reference.langchain.com/python/langchain-google-community/gmail/toolkit/GmailToolkit)。

## 设置

要使用此工具包，您需要按照 [Gmail API 文档](https://developers.google.com/gmail/api/quickstart/python#authorize_credentials_for_a_desktop_application) 中的说明设置凭据。下载 `credentials.json` 文件后，您就可以开始使用 Gmail API 了。

### 安装

此工具包位于 `langchain-google-community` 包中。我们需要 `gmail` 扩展：

```python theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
pip install -qU langchain-google-community\[gmail\]
```

要启用单个工具的自动追踪，请设置您的 [LangSmith](/langsmith/home) API 密钥：

```python theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
os.environ["LANGSMITH_TRACING"] = "true"
os.environ["LANGSMITH_API_KEY"] = getpass.getpass("Enter your LangSmith API key: ")
```

## 实例化

默认情况下，工具包会读取本地的 `credentials.json` 文件。您也可以手动提供 `Credentials` 对象。

```python theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
from langchain_google_community import GmailToolkit

toolkit = GmailToolkit()
```

### 自定义身份验证

在幕后，使用以下方法创建 `googleapi` 资源。
您可以手动构建 `googleapi` 资源以获得更多的身份验证控制。

```python theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
from langchain_google_community.gmail.utils import (
    build_resource_service,
    get_gmail_credentials,
)

# Can review scopes here https://developers.google.com/gmail/api/auth/scopes
# For instance, readonly scope is 'https://www.googleapis.com/auth/gmail.readonly'
credentials = get_gmail_credentials(
    token_file="token.json",
    scopes=["https://mail.google.com/"],
    client_secrets_file="credentials.json",
)
api_resource = build_resource_service(credentials=credentials)
toolkit = GmailToolkit(api_resource=api_resource)
```

## 工具

查看可用工具：

```python theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
tools = toolkit.get_tools()
tools
```

```text theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
[GmailCreateDraft(api_resource=<googleapiclient.discovery.Resource object at 0x1094509d0>),
 GmailSendMessage(api_resource=<googleapiclient.discovery.Resource object at 0x1094509d0>),
 GmailSearch(api_resource=<googleapiclient.discovery.Resource object at 0x1094509d0>),
 GmailGetMessage(api_resource=<googleapiclient.discovery.Resource object at 0x1094509d0>),
 GmailGetThread(api_resource=<googleapiclient.discovery.Resource object at 0x1094509d0>)]
```

* [GmailCreateDraft](https://reference.langchain.com/python/langchain-google-community/gmail/create_draft/GmailCreateDraft)
* [GmailSendMessage](https://reference.langchain.com/python/langchain-google-community/gmail/send_message/GmailSendMessage)
* [GmailSearch](https://reference.langchain.com/python/langchain-google-community/gmail/search/GmailSearch)
* [GmailGetMessage](https://reference.langchain.com/python/langchain-google-community/gmail/get_message/GmailGetMessage)
* [GmailGetThread](https://reference.langchain.com/python/langchain-google-community/gmail/get_thread/GmailGetThread)

## 在代理中使用

下面我们将展示如何将工具包整合到 [代理](/oss/python/langchain/agents) 中。

我们需要一个 LLM 或聊天模型：

<ChatModelTabs customVarName="llm" />

```python theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
# | output: false
# | echo: false

from langchain_openai import ChatOpenAI

llm = ChatOpenAI(model="gpt-4.1-mini", temperature=0)
```

```python theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
from langchain.agents import create_agent


agent_executor = create_agent(llm, tools)
```

```python theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
example_query = "Draft an email to fake@fake.com thanking them for coffee."

events = agent_executor.stream(
    {"messages": [("user", example_query)]},
    stream_mode="values",
)
for event in events:
    event["messages"][-1].pretty_print()
```

```text theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
================================ Human Message =================================

Draft an email to fake@fake.com thanking them for coffee.
================================== Ai Message ==================================
Tool Calls:
  create_gmail_draft (call_slGkYKZKA6h3Mf1CraUBzs6M)
 Call ID: call_slGkYKZKA6h3Mf1CraUBzs6M
  Args:
    message: Dear Fake,

I wanted to take a moment to thank you for the coffee yesterday. It was a pleasure catching up with you. Let's do it again soon!

Best regards,
[Your Name]
    to: ['fake@fake.com']
    subject: Thank You for the Coffee
================================= Tool Message =================================
Name: create_gmail_draft

Draft created. Draft Id: r-7233782721440261513
================================== Ai Message ==================================

I have drafted an email to fake@fake.com thanking them for the coffee. You can review and send it from your email draft with the subject "Thank You for the Coffee".
```

***

## API 参考

有关所有 `GmailToolkit` 功能和配置的详细文档，请前往 [API 参考](https://reference.langchain.com/python/langchain-community/agent_toolkits/gmail/toolkit/GmailToolkit)。

***

<div className="source-links">
  <Callout icon="edit">
    [Edit this page on GitHub](https://github.com/langchain-ai/docs/edit/main/src/i18n\zh-CN\oss\python\integrations\tools\google_gmail.mdx) or [file an issue](https://github.com/langchain-ai/docs/issues/new/choose).
  </Callout>

  <Callout icon="terminal-2">
    [Connect these docs](/use-these-docs) to Claude, VSCode, and more via MCP for real-time answers.
  </Callout>
</div>
